Hola,
Estoy haciendo un programa en C que al introducir unos sueldos me calcule el sueldo neto, pueda modificar el suelo y también poder subir el sueldo.
Es un menú de 4 opciones,
solamente me falla la opción 3 que es la de modificar el sueldo. ¿Podrían echarle un ojo y decirme en que fallo?
Gracias
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main () {
float sueldo[10], sueldoNeto[10], segSoc, irpf, sueldoNuevo, porcent;
int opcion=1;
int i=0;
bool lleno = false;
while (opcion != 0){
printf("1.- Introducir sueldos\n"); printf("2.- Calcular sueldo neto\n"); printf("3.- Modificar sueldos\n"); printf("4.- Subir sueldos\n"); printf("\nEscoge una opcion: "); switch (opcion){
case 1:
for (i=0; i<10; i++){
sueldo
[i
] = (rand()%4999)+499; }
// Mostrar Salario Bruto
for (i=0; i<10; i++){
printf("%.2f euros\n", sueldo
[i
]); }
lleno = true;
break;
case 2:
if (lleno) {
for (i=0; i<10; i++){
segSoc = sueldo[i] * 0.06;
if (sueldo[i] <= 700) irpf = sueldo[i] * 0.08;
else
if (sueldo[i] <= 1100) irpf = sueldo[i] * 0.11;
else
if (sueldo[i] <= 1500) irpf = sueldo[i] * 0.13;
else
if (sueldo[i] <= 2100) irpf = sueldo[i] * 0.17;
else
if (sueldo[i] <= 3000) irpf = sueldo[i] * 0.20;
else irpf = sueldo[i] * 0.25;
sueldoNeto[i] = sueldo[i] - segSoc - irpf;
}
// Visualizar Sueldo Neto
for (i=0; i<10; i++){
printf("\nSueldo neto del empleado %i: %.2f euros\n",i
+1, sueldoNeto
[i
]); }
}
else printf("\nERROR! No se ha introducio ningun sueldo\n"); break;
case 3:
if (lleno) {
do{
printf("A que empleado le quieres modificar el sueldo? "); }while((i<0) || (i>11));
do{
printf("Introduce un nuevo sueldo entre %.2f y 5000: ", sueldo
[i
]); scanf("%.2f", &sueldoNuevo
); }while ((sueldoNuevo < sueldo[i]) || (sueldoNuevo > 5000));
printf("\nEl nuevo sueldo es %.2f: ",sueldoNuevo
); }
else printf("\nERROR! No se ha introducio ningun sueldo\n"); break;
case 4:
if (lleno){
printf("Escribe el portencaje para subir los sueldos: ");
for (i=0; i<10; i++){
sueldoNuevo = sueldo[i] + ((sueldo[i] * porcent) / 100);
sueldo[i] = sueldoNuevo;
}
// Visualizar sueldos subidos
for (i=0; i<10; i++){
printf("\nSe ha subido el sueldo a: %2.f", sueldo
[i
]); }
}
else printf("\nERROR! No se ha introducio ningun sueldo\n"); break;
case 0:
printf("\nHas decidido salir, hasta luego!\n\n"); return 0;
break;
default:
printf ("La opcion es incorrecta, Presiona ENTER"); } // Fin switch
} // Fin While
return 0;
}
Gracias
Modifica el scanf quitando el .2:scanf("%f", &sueldoNuevo);
Saluditos! ..... !!!! (http://st.forocoches.com/foro/images/smilies/aaaaa.gif)