gpt4 book ai didi

C 菜单问题

转载 作者:行者123 更新时间:2023-11-30 15:14:55 26 4
gpt4 key购买 nike

我的程序的菜单功能出现问题。菜单 printf 的最后 2 部分将继续执行下一个函数。

菜单功能代码 -

#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 选项正在进入下一个下一个功能

图片 - https://gyazo.com/7e99cfb42a18d04a144d3d139409d6ec

最佳答案

好的..我运行了您的代码并进行了一些更改,并且运行良好,没有您在图像文件中显示的两行 printf 行。

  1. 首先,您写错了 menu() 函数。它的原型(prototype)显示它不带任何参数,而在它的声明中它带一个数组。您需要将 names 数组传递给菜单函数,因为您要将其传递给 enter 函数。因此,函数 menu()enter() 都将采用 names 数组作为参数。
  2. 我使用的代码没有 system("cls") 函数,因为我的编译器没有找到它。

所以,它在我这边起作用了,我感觉 system("cls") 正在导致您出现图中所示的问题。

关于C 菜单问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33819657/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com