C语言 如何通过Switch语句将一个菜单函数的Int值返回给Main函数以访问其他菜单函数?



我正在做一个学校项目的一部分,我很迷路,这只是它的开始。我们的教授希望我们有4个菜单功能。每个菜单都有访问程序内其他功能的选项。首先,如果我们想要启动或退出,我们被要求拥有程序状态。没问题。我的问题是,当我运行主菜单功能并选择一个选项时,我无法选择返回主菜单以运行开关机箱以访问其他菜单。现在所有的菜单上都写着"即将推出"。这样我就知道我做对了。过了这部分我再加。这是我在这里的第一个帖子,所以我很抱歉,如果这是很多代码张贴。我非常感谢任何帮助。谢谢你。

#include <stdio.h>
#include <stdlib.h>

int main()
{
//declare all working variables: mOption, FManOption, COption...etc...
int MOption = 0;
int FManOption = 0;
int FOption = 0;
int COption = 0;
int userChoice = 0;

int n = mainMenu();
switch(n)
{
case 1: while(FManOption != 3)
{
FManOption = FishermanMenu();
switch(FManOption)
{
case 1: //get a fisherman
//count fisherman
break;
case 2: //prompt for a ssn, validate, search
//if found display everything about this fisherman
break;
case 3: //hit any key to go back to main menu
//reset FManOption
break;
default: "error!";
}//end switch(FManOption)
}//end while(FManOption != 3)
break;
default: printf("error");
}
return 0;
}
int mainMenu()
{
int option = 0;
printf("-------Welcome to the Fishing Tournament Main Menu!-------nn");
do
{
printf("1 - Fisherman menun");
printf("2 - Fish menun");
printf("3 - Tournament(Catch) menun");
printf("4 - Close Tournament (determine winner)n");
printf("5 - Quit Programnn");
printf("Please select a menu option: ");
if (scanf("%d", &option) != 1) /* check scanf() return value for input errors */
{
/* handle input error */
return -1;
}
} while (option < 1 || option > 5); /* check the range of option ( 1 - 5) */
return option; /* finally return the final correct option */
}
int FishermanMenu()
{
printf("Coming soon...");
/*
-1-Register fisherman
-2-Search fisherman
-3-Go back to main menu
*/
//FManOption
}//end Fisherman Menu

您的mainMenu()函数不返回任何其他0,此外,当你调用mainMenu();时,你忽略了main中的返回值(这甚至不应该编译),这可能是你正在寻找的,

int mainMenu(void)
{
int option = 0;
printf("-------Welcome to the Fishing Tournament Main Menu!-------nn");
do 
{
printf("1 - Fisherman menun");
printf("2 - Fish menun");
printf("3 - Tournament(Catch) menun");
printf("4 - Close Tournament (determine winner)n");
printf("5 - Quit Programnn");
printf("Please select a menu option: ");
if (scanf("%d", &option) != 1) /* check scanf() return value for input errors */
{
/* handle input error */
return -1;
}
} while (option < 1 || option > 5); /* check the range of option ( 1 - 5) */
return option; /* finally return the final correct option */
}
int main(void)
{
int n = mainMenu(); /* save the result to n */
/* your code */
return 0;
}

最新更新