Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: MGMR en 13 Abril 2015, 01:55 am



Título: Ayuda para un contador
Publicado por: MGMR en 13 Abril 2015, 01:55 am
Hola a todos.. tengo un gran problema con un contador de consultas..
Lo que necesito hacer es que cada vez q entre al switch en la opción de consulta el contador aumente en 1.. se que es algo sencillo pero se me dificulta mucho hacerlo.

Un ejemplo mas claro de lo que debo hacer es esto:

Código
  1. switch(num_op){
  2. case 1: printf("Consulta: %d\n\n", c);
  3.         printf("Ingrese el nombre del lugar de origen del recorrido:\n");
  4. scanf("%s", &s_origen); printf("\n");
  5. printf("Ingrese el nombre del lugar de destino del recorrido:\n");
  6. scanf("%s", &s_destino); printf("\n");
  7. ValiHora();
  8. ValiPresupuesto();
  9.                } break;          

Donde c es el contador de la consulta.. tengo una función q cuando salga del switch entre al menú principal y luego si se elige nuevamente la opción de consultas lo q necesito es que c ya no sea 1 sino 2... y así cuantas veces entre a la opción.

Les agradecería mucho su ayuda..  :-*


Título: Re: Ayuda para un contador
Publicado por: engel lex en 13 Abril 2015, 03:11 am
colocalo como c++ y listo

Código
  1. switch(num_op){
  2. case 1: printf("Consulta: %d\n\n", c++);
  3.         printf("Ingrese el nombre del lugar de origen del recorrido:\n");
  4. scanf("%s", &s_origen); printf("\n");
  5. printf("Ingrese el nombre del lugar de destino del recorrido:\n");
  6. scanf("%s", &s_destino); printf("\n");
  7. ValiHora();
  8. ValiPresupuesto();
  9.                } break;


Título: Re: Ayuda para un contador
Publicado por: MGMR en 14 Abril 2015, 23:54 pm
Gracias por contestar.  :)

Hice lo que sugeriste y al principio entra y hace el aumento bien, pero luego comienza hacer de de 2 en 2..  :-\

Disculpen la molestia pero me podrían ayudar en eso.


Título: Re: Ayuda para un contador
Publicado por: rir3760 en 16 Abril 2015, 16:39 pm
Hice lo que sugeriste y al principio entra y hace el aumento bien, pero luego comienza hacer de de 2 en 2.
En el fragmento que publicas las llaves están mal, para explicarlo mejor la sentencia de selección switch se procesa así:
Código
  1. switch(num_op){
  2. case 1:
  3.   printf("Consulta: %d\n\n", c);
  4.   printf("Ingrese el nombre del lugar de origen del recorrido:\n");
  5.   scanf("%s", &s_origen); printf("\n");
  6.  
  7.   printf("Ingrese el nombre del lugar de destino del recorrido:\n");
  8.   scanf("%s", &s_destino); printf("\n");
  9.  
  10.   ValiHora();
  11.   ValiPresupuesto();
  12. }
  13. break;
Ahí tienes un switch con un solo caso y la sentencia "break;" puede generar resultados no deseados (o bien el compilador debe emitir un mensaje de error si esta es "huérfana").

Mejor publica el código fuente completo.

Un saludo


Título: Re: Ayuda para un contador
Publicado por: Gunhack en 17 Abril 2015, 03:41 am
Haz intentado poner la variable "c" como tipo static int ? por que como sales de la función de tu menú SUPONGO que muere la variable. Inténtalo, si no publica tu código.

Código
  1. static int c=0;

Y tu código yo lo pondría así:

Código
  1. switch(num_op)
  2. {
  3. case 1:
  4.          printf("Consulta: %d\n\n", c);
  5.  printf("Ingrese el nombre del lugar de origen del recorrido:\n");
  6.          scanf("%s", &s_origen); printf("\n");
  7.          printf("Ingrese el nombre del lugar de destino del recorrido:\n");
  8.          scanf("%s", &s_destino); printf("\n");
  9.          ValiHora();
  10.          ValiPresupuesto();
  11.          break;
  12.  
  13.  default: break;
  14. }