我是编码的新手,我听说调用主要功能是不好的做法,但是我没有看到另一种方法可以在菜单中来回导航,而不是我在这段代码。我在这里做了什么"呼叫"主要功能?这是合法的吗?
非常感谢。
#include <stdio.h>
void MAINmenu();
void menu1();
void menu2();
int m;
int main()
{
MAINmenu();
}
void MAINmenu()
{
printf("MAIN MENU\tplease choose menu 1, menu 2, or 3 to quit\n");
scanf("%d",&m);
do
{
switch(m)
{
case 1:
menu1();
break;
case 2:
menu2();
break;
case 3:
printf("GOODBYE");
break;
default:
printf("ERROR.\n");
main();
break;
}
}while(m!=3);
}
void menu1()
{
printf("MENU 1.\n");
printf("would you like to continue here(1) or go back to main(2)?\n");
scanf("%d",&m);
switch(m)
{
case 1:
menu1();
break;
case 2:
main();
break;
default:
printf("ERROR.\n");
menu1();
break;
}
}
void menu2()
{
printf("MENU 2.\n");
printf("would you like to continue here(1) or go back to main(2)?\n");
scanf("%d",&m);
switch(m)
{
case 1:
menu2();
break;
case 2:
main();
break;
default:
printf("ERROR.\n");
menu2();
break;
}
}
答案 0 :(得分:0)
你也可以这样做:
int main()
{
while (MAINmenu());
return 0;
}
int MAINmenu()
{
printf("MAIN MENU\tplease choose menu 1, menu 2, or 3 to quit\n");
scanf("%d",&m);
do
{
switch(m)
{
case 1:
menu1();
break;
case 2:
menu2();
break;
case 3:
printf("GOODBYE");
break;
default:
printf("ERROR.\n");
return 1;
}
}while(m!=3);
return 0;
}
...
但是调用main()也可以。