Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Xgirl12 en 7 Noviembre 2012, 04:35 am



Título: Corrección de programa en C
Publicado por: Xgirl12 en 7 Noviembre 2012, 04:35 am
Hola de nuevo, un gusto saludarlos.
La verdad es un poco penoso estar pregunte y pregunte, pero pues no me queda de otra y pues agradecer su paciencia.

Ahora lo que me trae por aca, es que acabo de hacer un programa que me calcula el sueldo de un trabajador, según indica sus horas trabajadas y selecciona a la zona geográfica que le corresponda (En México se usan diferentes salarios mínimos para las diferentes regiones del país por lo que se divide en a, b, o c).
Entonces yo hice este código, nada más el punto en donde estoy atorada, es por ejemplo:
case'a':("Selecciono ZonA\n");
            scanf("%f", &ZonA);
            sueldo = ZonA * horas;
            printf("Su sueldo es: %.2f\n\n ", ZonA);
            system("pause");
En este punto donde puse en negrita, no entiendo por qué me pone que primero declare la función, si estoy declarando (según yo) bien la variable y pues también las bibliotecas... Entonces si alguien me puede explicar, y tomarse tantito tiempo, pues infinitamente agradecida.
Por otro lado, aquí les paso todo el código y sólo me resta esperar sus comentarios.
Gracias.

Código:
#include <stdio.h>
#include <stdlib.h>
#include<conio.h>
 main()
{
  /* Mis variables */
  textbackground(3) ;
  int horas;
float zonA=62.33, zonaB=60.57, zonaC=59.08, sueldo;
char opc;
do
{
      

  /* Lectura del número de horas trabajadas */
  
  printf("Ingrese el numero de horas trabajadas:%d\n", horas );
    
  scanf("%d", &horas);
  
 
  printf("Introduzca la zona geografica que le corresponda:\n" );
  printf("\n a. ZonA. \n b. ZonaB. \n c. ZonaC. \n d. Salir ");

   system("cls");
   opc=getche();
  
  
  switch(opc)
  {
            case'a':("Selecciono ZonA\n");
            scanf("%f", &ZonA);
            sueldo = ZonA * horas;
            printf("Su sueldo es: %.2f\n\n ", ZonA);
            system("pause");
            break;
            
            case'b':"Selecciono ZonaB \n",ZonaB);
            scanf("%f", &ZonaB);
            sueldo =ZonaB * horas;
            printf("Su sueldo es: %.2f\n\n ", ZonaB);
            system("pause");
            break;
            
            case'c':("Selecciono ZonaC \n");
            scanft("%f", &ZonaC);
            sueldo = ZonaC * horas;
            printf("Su sueldo es: %.2f\n\n ", ZonaC);
            system("pause");
            break;
            
            case'd': printf("\n\nAdios\n");
             system("pause");
                 break;
                     printf("\n\n OpcionInvalida");

    }/*Fin dela Selección Múltiple*/

    }while (opc!='d');
        
  
  
  
  return 0;
}


Título: Re: Corrección de programa en C
Publicado por: The Swash en 7 Noviembre 2012, 05:26 am
Si pudieses poner tu código entre etiquetas
Código
  1.  
créeme que nos sería más cómodo y fácil ayudarte.

Saludos.


Título: Re: Corrección de programa en C
Publicado por: The Swash en 7 Noviembre 2012, 05:46 am
Hola,

A ojo te podría decir que: "zonA" es diferente de "ZonA", C es casesensitive, es decir que diferencia entre mayúsculas y minúsculas.

Así que creo que tu problema será ese, a ojo no veo nada más.

Saludos.


Título: Re: Corrección de programa en C
Publicado por: Xgirl12 en 7 Noviembre 2012, 06:17 am
¿Sabes qué? Al final no me realiza la operación que tiene que hacer, no hace nada, ya corregí ese error de las mayúsculas y me lo corrió, pero no hace lo que te digo.

Salu2.


Título: Re: Corrección de programa en C
Publicado por: leosansan en 7 Noviembre 2012, 06:28 am
Citar
Tienes varios errores más, como en algunos printf, en poner en lugar de sueldo la Zona, usar el formato %d en los case en lugar de %c, ya que se va a tomar una letra la ausencia del caso default. En fin, creo que ya te funciona:
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include<conio.h>
  4. main()
  5. {
  6.  /* Mis variables */
  7.  int horas;
  8. float ZonA=62.33, ZonaB=60.57, ZonaC=59.08, sueldo;
  9. char opc;
  10. do
  11. {
  12.  /* Lectura del número de horas trabajadas */
  13.  printf("Ingrese el numero de horas trabajadas:" );
  14.  scanf("%d", &horas);
  15.  printf("Introduzca la zona geografica que le corresponda:\n" );
  16.  printf("\n a. ZonA. \n b. ZonaB. \n c. ZonaC. \n d. Salir ");
  17.   /*system("cls");*/
  18.   opc=getche();
  19.  switch(opc)
  20.  {
  21.            case'a':("Selecciono ZonA\n");
  22.            scanf("%c", &ZonA);
  23.            sueldo = ZonA * horas;
  24.            printf("\nSu sueldo es: %1.2f\n\n ", sueldo);
  25.            system("pause");
  26.            break;
  27.  
  28.            case'b':("Selecciono ZonaB \n");
  29.            scanf("%c", &ZonaB);
  30.            sueldo =ZonaB * horas;
  31.            printf("\nSu sueldo es: %1.2f\n\n ", sueldo);
  32.            system("pause");
  33.            break;
  34.  
  35.            case'c':("Selecciono ZonaC \n");
  36.            scanf("%c", &ZonaC);
  37.            sueldo = ZonaC * horas;
  38.            printf("\nSu sueldo es: %1.2f\n\n ",sueldo);
  39.            system("pause");
  40.            break;
  41.  
  42.            case'd': printf("\n\nAdios\n");
  43.             system("pause");
  44.                 break;
  45.                     printf("\n\n OpcionInvalida");
  46.            default: printf("\n\n OpcionInvalida\t");break;
  47.    }/*Fin dela Selección Múltiple*/
  48.  
  49.    }while (opc!='d');
  50.  return 0;
  51. }
Saludos!.


Título: Re: Corrección de programa en C
Publicado por: Xgirl12 en 7 Noviembre 2012, 22:52 pm
¡Sii! Muchas gracias, es que no me corria bien. Me han salvado todos, pero mil gracias leosansan por pasarte todo el código. Sin comentarios, simplemente gracias a todos.

Salu2.

 ;D