我的程序菜单功能有问题。菜单printf的最后两部分将继续执行下一个功能。
菜单功能代码 -
#include <stdio.h>
#include <string.h>
void enter(char names[16][20]);
void menu();
int main()
{
char names[16][20];
int i;
printf("Please enter the names of the players:\n");
/*Making the user enter 16 times*/
for (i = 0; i < 16; i++)
{
scanf("%9s", &names[i]);
fflush(stdin);
}
/*Clearing Screen*/
system("cls");
menu();
return names[16][20];
}
void menu(char names[][20])
{
int choice;
printf("Please select one of the following options:\n\n"
"Press 1 to enter game results\n"
"Press 2 to display the current round\n"
"Press 3 to display the players advancing to the next round\n"
"Press 4 to display the previous round\n"
"Press 5 to exit the program\n");
system("cls");
scanf("%d", &choice);
if(choice == 1)
{
enter(names);
system("cls");
}
}
void enter(char names[][20])
{
int result;
int score1;
int score2;
int p, c, j, l, i;
char winner[8][8];
system("cls");
for(i = 0; i < 8; i++)
{
printf("\n\n%s vs %s",names[i],names[i+8]);
score1 = 0;
score2 = 0;
for(j = 0; j < 5; j++)
{
printf("\n\nEnter game %d results, press 1 if %s won or"
" 2 if %s won :\n",(j+1), names[i], names[i+8]);
scanf("%d", &result);
if(result == 1)
{
score1++;
}
if(result == 2)
{
score2++;
}
}
}
不知何故,按4和5选项进入下一个下一个功能
答案 0 :(得分:1)
好的..我运行了一些代码并进行了一些更改,运行正常,没有您在图片文件中显示的两条printf
行。
menu()
函数。它的原型显示它不需要参数,而在它的声明中它需要一个数组。您需要将names
数组传递给菜单函数,因为您要将其传递给enter
函数。因此,menu()
和enter()
函数都将names
数组作为参数。system("cls")
函数,因为我的编译器找不到它。所以,它在我这边工作,我感觉到,system("cls")
正在引起你在图像中显示的问题。