Código:
Siempre se cumple la primera condición, por qué?, estaré usando mal los char? o alguna otra cosa?.#include <stdio.h> #include <stdlib.h> /* Los empleados de una fábrica trabajan en dos turnos, diurno y nocturno. Se desea calcular el salario de un día de trabajo atendiendo a: • La tarifa horaria diurna es $5.00. • La tarifa horaria nocturna es $8.00. • Caso de ser domingo, la tarifa horaria se incrementa en $2.00, si es diurna, y $3.00 en el turno nocturno. • Un día de trabajo tiene 8 horas, todas en uno solo de los turnos. Datos de entrada: Turno diurno ó nocturno, horas trabajadas, día de la semana Datos de salida: Salario de un día de trabajo */ int main() { //Declaración de variables char lcTurno; int liHorasTrabajadas, liDiaSemana, liTotal; //Entrada de datos printf("Qu%c turno trabaj%c (Diurno = D, Nocturno = N)?: ", 130, 162); scanf("%s", &lcTurno); if (lcTurno != 'D' && lcTurno != 'd' && lcTurno != 'N' && lcTurno != 'n') { printf("\nError!, el turno debe ser D %c N.\n", 162); return 0; } printf("Cu%cntas horas trabaj%c?: ", 160, 162); scanf("%d", &liHorasTrabajadas); if (liHorasTrabajadas <= 0 || liHorasTrabajadas > 8) { printf("\nError!, las horas trabajadas no puede ser 0 %c mayor que 8.\n", 162); return 0; } printf("Qu%c d%ca de la semana trabaj%c (Lunes = 1, Domingo = 7)?: ", 130, 161, 162); scanf("%d", &liDiaSemana); if (liDiaSemana <= 0 || liDiaSemana > 7) { printf("\nError!, los d%cas de la semana debe ser entre 1-7.\n", 161); return 0; } //Procesamiento if (lcTurno == 'D' || lcTurno == 'd' && liDiaSemana >= 1 || liDiaSemana <= 6) { liTotal = liHorasTrabajadas * 5; printf("\nA RD$5 la hora, el salario ser%c de: RD$%d\n", 160, liTotal); //Salida de datos } else if (lcTurno == 'D' || lcTurno == 'd' && liDiaSemana == 7) { liTotal = liHorasTrabajadas * 7; printf("\nA RD$7 la hora, el salario ser%c de: RD$%d\n", 160, liTotal); //Salida de datos } else if (lcTurno == 'N' || lcTurno == 'n' && liDiaSemana >= 1 || liDiaSemana <= 6) { liTotal = liHorasTrabajadas * 8; printf("\nA RD$8 la hora, el salario ser%c de: RD$%d\n", 160, liTotal); //Salida de datos } else if (lcTurno == 'N' || lcTurno == 'n' && liDiaSemana == 7) { liTotal = liHorasTrabajadas * 11; printf("\nA RD$11 la hora, el salario ser%c de: RD$%d\n", 160, liTotal); //Salida de datos } return 0; }
Espero puedan ayudarme, saludos y gracias de antemano.