Hola,
En tu codigo veo que la función menú hace uso de recursividad (se llama a si misma), lo cual veo inncesario. Porque no haces el proceso del bucle en el main o hazlo todo dentro de la función pero que devuelva void, no es necesaria la asignación del tecer case, porque dicho valor ya lo ingresaste por teclado.
Tu función está así:
Código c++:
Ver originalint menu()
{
clrscr();
int opc=0, temp=0;
cout<< "1.Conteo de Vocal\n";
cout<< "2.Calculo de edad\n";
cout<< "3.Salir\n ";
cout<< "Digite opcion ";
cin>>opc;
while ((opc != 3)&&(temp != 3))
{
switch (opc)
{
case 1: convoc(); menu(); break;
case 2: nac(); menu(); break;
case 3: opc = 3; temp = 3; break;
}
}
return 0;
}
con el primer cambio que te comente sería:
Código c++:
Ver originalint menu()
{
clrscr();
int opc=0;
cout<< "1.Conteo de Vocal\n";
cout<< "2.Calculo de edad\n";
cout<< "3.Salir\n ";
cout<< "Digite opcion ";
cin>>opc;
return opc;
}
void main()
{
int op=0;
while (op != 3)
{
clrscr();
op=menu();
switch (op)
{
case 1: convoc(); break;
case 2: nac();
}
}
}
La segunda forma sería:
Código c++:
Ver originalvoid menu()
{
int opc=0;
while (opc != 3)
{
clrscr();
cout<< "1.Conteo de Vocal\n";
cout<< "2.Calculo de edad\n";
cout<< "3.Salir\n ";
cout<< "Digite opcion ";
cin>>opc;
switch (opc)
{
case 1: convoc(); break;
case 2: nac();
}
}
}
void main()
{
menu();
}
Espero que te sea de mucha ayuda.
Saludos