ayuda sobre menus

Yo
19 de Enero del 2005
Buenas este es el codigo que tengo para implementar un menu y un submenu:
int menu1 () {
int opc;
printf ("nt______MENU PRINCIPAL______n");
printf ("nt 1. Gestion de Averiasn");
printf ("t 2. Gestion de Maquinasn");
printf ("t 3. Gestion de Personaln");
printf ("t 0. Salirn");
printf ("nt Elija una de las tres opciones o presione 0");
printf ("nt para salir del programa: ");
scanf ("%d",&opc);
fflush (stdin);
return opc;
}

int menu2 () {
int opc;
borrar_pantalla();
printf ("nt______GESTION DE AVERIAS______n");
printf ("nt 1. Registrar Averian");
printf ("t 2. Asignar Operarion");
printf ("t 3. Resolver Averian");
printf ("t 4. Eliminar Averian");
printf ("t 5. Listar Averian");
printf ("t 0. Volvern");
printf ("nt Elija una de las cinco opciones o presione 0: ");
printf ("nt para volver al menu anterior: ");
scanf ("%d",&opc);
fflush (stdin);
return opc;
}


void main () {
int opcion1, opcion2;
do {
opcion1=menu1();
switch (opcion1) {
case 1:
do {
opcion2=menu2();
switch (opcion2) {
case 1:
break;
case 2: Asignar_Operario ();
break;
case 3: printf ("nllama a la funcion resolver averian");
break;
case 4:
break;
case 5:
break;
case 0:
break;
default: printf ("nOpcion incorrecta, por favor introduzca un numero del 0 al 5n");
}
}while (opcion2!=0);
break;
case 2:
break;
case 3:
break;
case 0 : break;
default: printf ("nOpcion incorrecta, por favor introduzca un numero del 0 al 3n");
}
}while (opcion1<0 || opcion1>3);
}
Este menu solo hace algo si presiono el 2 en menu2 ()pero lo que quiero esque cuando presione el 0 en el menu2() me vuelva a mostrar el menu1() e intentado poner en el case 0 de menu2() case 0:menu1();break; esto me vuelve al menu1() pero cuando presiono o 1 2 o 3 me sale del menu y no se mete en menu2() que debo hacer?
gracias.

miguel
19 de Enero del 2005
De: www.maacera.com

Hemos visto tu duda en programación.com
La solución a tu problema es la siguiente.

En la condición del bucle do-while más exterior debes cambiar la condición: (opcion1<0 || opcion1>3) por la condición: (opcion1!=0)

Si no te hemos entendido mal el problema esta debería se la solución.

Esperamos haberte ayudado.

Un saludo, Miguel Ángel.

Por favor, si tienes un segundo danos tu opinión sobre maacera.com. Nos ayudará a mejorar el sitio para usted. Muchas gracias.

Muchas gracias por visitar www.maacera.com