Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Regresar a linea N

Estas en el tema de Regresar a linea N en el foro de C/C++ en Foros del Web. Hola, Soy nuevo en la programación y en el foro, este código es una simulación muy básica como parte de mi examen y mi pregunta ...
  #1 (permalink)  
Antiguo 18/05/2013, 14:55
Avatar de luis_rascon  
Fecha de Ingreso: mayo-2013
Ubicación: Xalapa
Mensajes: 1
Antigüedad: 11 años
Puntos: 0
Pregunta Regresar a linea N

Hola,

Soy nuevo en la programación y en el foro, este código es una simulación muy básica como parte de mi examen y mi pregunta es la siguiente.
Tengo este código y en la linea 77 hay un if ¿Existe alguna manera de que regrese a la linea 10 para volver a preguntar que tipo de cafe desea?
Código C++:
Ver original
  1. #include<stdio.h>
  2. #include<conio.h>
  3.  
  4.     main()
  5.     {
  6.         int opcion,dinero,americano=18,capuchino=26,lechero=27;
  7.  
  8.         {
  9.             //Opcion de cafe
  10.             printf("Presiona:\n1 si desea cafe americano\n2 si desea cafe capuchino\n3 si desea lechero\n");
  11.             scanf("%i",&opcion);   
  12.             //Caso
  13.             {
  14.                 switch(opcion)
  15.                 {
  16.                     case 1:
  17.                         {
  18.                                 printf("teclee la cantidad de dinero con la que pagara\n");
  19.                                 scanf("%i",&dinero);
  20.                             if(dinero>=americano)
  21.                             {
  22.                                 dinero=dinero-americano;
  23.                                 printf("\nIntroduzca monedas...\n");
  24.                                 getch();
  25.                                 //espera a que termine de introducir monedas
  26.                                 printf("Su cambio es %i",dinero);
  27.                             }
  28.                             else
  29.                             {
  30.                                 printf("Dinero insuficiente");
  31.                             }break;
  32.                         }
  33.                     case 2:
  34.                         {
  35.                                 printf("teclee la cantidad de dinero con la que pagara\n");
  36.                                 scanf("%i",&dinero);
  37.                             if(dinero>=capuchino)
  38.                             {
  39.                                 dinero=dinero-capuchino;
  40.                                 printf("\nIntroduzca monedas...\n");
  41.                                 getch();
  42.                                 //espera a que termine de introducir monedas
  43.                                 printf("Su cambio es %i",dinero);
  44.                             }
  45.                             else
  46.                             {
  47.                                 printf("Dinero insuficiente");
  48.                             }break;
  49.                         }
  50.                     case 3:
  51.                             {
  52.                                 printf("teclee la cantidad de dinero con la que pagara\n");
  53.                                 scanf("%i",&dinero);
  54.                             if(dinero>=lechero)
  55.                             {
  56.                                 dinero=dinero-lechero;
  57.                                 printf("\nIntroduzca monedas...\n");
  58.                                 getch();
  59.                                 //espera a que termine de introducir monedas
  60.                                 printf("Su cambio es %i",dinero);
  61.                             }
  62.                             else
  63.                             {
  64.                                 printf("Dinero insuficiente");
  65.                             }break;
  66.                             }
  67.                     default:
  68.                         {
  69.                             printf("La opcion es incorrecta");
  70.                             break;
  71.                         }
  72.                 }
  73.                
  74.             }
  75.             if(opcion!=1 && opcion !=2 && opcion!=3)
  76.                 {
  77.                  
  78.                 }
  79.             //Fin del programa
  80.             {
  81.                 printf("\n\n¡Hasta Pronto!");
  82.             }
  83.         }
  84.     getch();
  85.     }
  #2 (permalink)  
Antiguo 18/05/2013, 15:26
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 11 años, 8 meses
Puntos: 83
Respuesta: Regresar a linea N

Un bucle infinito:

Código:
while(1) {
    printf("Presiona:\n1 si desea cafe americano\n2 si desea cafe capuchino\n3 si desea lechero\n4 si desea salir");
    scanf("%i",&opcion);
    
    if(opcion == 4) {
        break;
    }

    switch() {
        ...
    }
}
Si quieres tambien puedes usar un flag de estado:

Código:
char run = 1;
while(run) {
    scanf("%i",&opcion);
    switch(option) {
        case 1
        case 2...

        default: {
           run =  0;
        }
    }
}
Personalmente me gusta el del flag.

Saludos
vosk
  #3 (permalink)  
Antiguo 18/05/2013, 15:27
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 11 años, 8 meses
Puntos: 83
Respuesta: Regresar a linea N

Otra cosa, quita el include conio y usa getchar al final

Saludos
vosk
  #4 (permalink)  
Antiguo 18/05/2013, 15:39
Avatar de L3m0n  
Fecha de Ingreso: diciembre-2011
Mensajes: 219
Antigüedad: 12 años, 4 meses
Puntos: 46
Respuesta: Regresar a linea N

Si existe, puedes hacer una etiqueta, que no es que sea malo, pero si se puede hacer de otra manera, mejor, las etiquetas para cuando no hay otro remedio, dan muchos dolores de cabeza xDD
  #5 (permalink)  
Antiguo 18/05/2013, 15:42
 
Fecha de Ingreso: enero-2012
Ubicación: Buenos Aires
Mensajes: 745
Antigüedad: 12 años, 3 meses
Puntos: 35
Respuesta: Regresar a linea N

De paso, leete algo de C coding styles; meté bien las llaves, indentá razonablemente, declará bien la función main(), usa espacios entre operadores para mejorar la legibilidad, etc.

  #6 (permalink)  
Antiguo 18/05/2013, 15:56
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 11 años, 8 meses
Puntos: 83
Respuesta: Regresar a linea N

Lo de las etiquetas es el goto?

Código:
pregunta:
    printf("Selecciona ...");
    scanf("%i",&opcion);
    switch(option) {
        ....
    }
goto pregunta;
Tambien puede combinarse con lo del flag para quitar el bucle infinito.

Saludos
vosk

Etiquetas: int, programa, regresar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:09.