Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: sora_ori en 11 Diciembre 2013, 14:00 pm



Título: [Help] Programa que calcula sueldos
Publicado por: sora_ori en 11 Diciembre 2013, 14:00 pm
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


Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4.  
  5. int main () {
  6.    float sueldo[10], sueldoNeto[10], segSoc, irpf, sueldoNuevo, porcent;
  7.    int opcion=1;
  8.    int i=0;
  9.    bool lleno = false;
  10.    srand(time(NULL));
  11.  
  12.    while (opcion != 0){
  13.          system("cls");
  14.          printf("1.- Introducir sueldos\n");
  15.          printf("2.- Calcular sueldo neto\n");
  16.          printf("3.- Modificar sueldos\n");
  17.          printf("4.- Subir sueldos\n");
  18.          printf("0.- Salir\n");
  19.          printf("\nEscoge una opcion: ");
  20.          fflush(stdin);
  21.          scanf("%d", &opcion);
  22.          switch (opcion){
  23.                 case 1:
  24.                      system("cls");
  25.                      for (i=0; i<10; i++){
  26.                          sueldo[i] = (rand()%4999)+499;
  27.                      }
  28.                      // Mostrar Salario Bruto
  29.                      for (i=0; i<10; i++){
  30.                          printf("%.2f euros\n", sueldo[i]);
  31.                      }
  32.                      printf("\n\n");
  33.                      lleno = true;
  34.                      system("pause");
  35.                      break;
  36.                 case 2:
  37.                      system("cls");
  38.                      if (lleno) {
  39.                                 for (i=0; i<10; i++){
  40.                                     segSoc = sueldo[i] * 0.06;
  41.                                     if (sueldo[i] <= 700) irpf = sueldo[i] * 0.08;
  42.                                     else
  43.                                     if (sueldo[i] <= 1100) irpf = sueldo[i] * 0.11;
  44.                                     else
  45.                                     if (sueldo[i] <= 1500) irpf = sueldo[i] * 0.13;
  46.                                     else
  47.                                     if (sueldo[i] <= 2100) irpf = sueldo[i] * 0.17;
  48.                                     else
  49.                                     if (sueldo[i] <= 3000) irpf = sueldo[i] * 0.20;
  50.                                     else irpf = sueldo[i] * 0.25;
  51.  
  52.                                 sueldoNeto[i] = sueldo[i] - segSoc - irpf;
  53.                                 }
  54.                                 // Visualizar Sueldo Neto
  55.                                 for (i=0; i<10; i++){
  56.                                     printf("\nSueldo neto del empleado %i: %.2f euros\n",i+1, sueldoNeto[i]);
  57.                                 }
  58.                                 printf("\n");
  59.                                 system("pause");
  60.                      }
  61.                      else printf("\nERROR! No se ha introducio ningun sueldo\n");
  62.                      break;
  63.                 case 3:
  64.                      system("cls");
  65.                      if (lleno) {
  66.                                 do{
  67.                                     printf("A que empleado le quieres modificar el sueldo? ");
  68.                                     scanf("%i", &i);
  69.                                 }while((i<0) || (i>11));
  70.                                 do{
  71.                                     printf("Introduce un nuevo sueldo entre %.2f y 5000: ", sueldo[i]);
  72.                                     scanf("%.2f", &sueldoNuevo);
  73.                                     }while ((sueldoNuevo < sueldo[i]) || (sueldoNuevo > 5000));
  74.  
  75.                            printf("\nEl nuevo sueldo es %.2f: ",sueldoNuevo);
  76.                      }
  77.                      else printf("\nERROR! No se ha introducio ningun sueldo\n");
  78.                      break;
  79.                 case 4:
  80.                      system("cls");
  81.                      if (lleno){
  82.                                 printf("Escribe el portencaje para subir los sueldos: ");
  83.                                 scanf("%f", &porcent);
  84.  
  85.                                 for (i=0; i<10; i++){
  86.                                     sueldoNuevo = sueldo[i] + ((sueldo[i] * porcent) / 100);
  87.                                     sueldo[i] = sueldoNuevo;
  88.                                 }
  89.  
  90.                                 // Visualizar sueldos subidos
  91.                                 for (i=0; i<10; i++){
  92.                                     printf("\nSe ha subido el sueldo a: %2.f", sueldo[i]);
  93.                                 }
  94.                          printf("\n\n");
  95.                          system("pause");
  96.                      }
  97.                      else printf("\nERROR! No se ha introducio ningun sueldo\n");
  98.                      break;
  99.                 case 0:
  100.                      printf("\nHas decidido salir, hasta luego!\n\n");
  101.                      system("pause");
  102.                      return 0;
  103.                      break;
  104.                 default:
  105.                         printf ("La opcion es incorrecta, Presiona ENTER");
  106.                 } // Fin switch
  107.    } // Fin While
  108.  
  109.    printf("\n\n");
  110.    system("pause");
  111.    return 0;
  112. }


Gracias


Título: Re: [Help] Programa que calcula sueldos
Publicado por: leosansan en 11 Diciembre 2013, 14:46 pm

Modifica el scanf quitando el .2:

Código
  1. scanf("%f", &sueldoNuevo);

Saluditos! ..... !!!!        (http://st.forocoches.com/foro/images/smilies/aaaaa.gif)


Título: Re: [Help] Programa que calcula sueldos
Publicado por: sora_ori en 11 Diciembre 2013, 21:03 pm
Muchas gracias! =)