C菜单问题

时间:2015-11-20 05:31:42

标签: c menu

我的程序菜单功能有问题。菜单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选项进入下一个下一个功能

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

1 个答案:

答案 0 :(得分:1)

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

  1. 首先,你写错了menu()函数。它的原型显示它不需要参数,而在它的声明中它需要一个数组。您需要将names数组传递给菜单函数,因为您要将其传递给enter函数。因此,menu()enter()函数都将names数组作为参数。
  2. 我使用的代码没有system("cls")函数,因为我的编译器找不到它。
  3. 所以,它在我这边工作,我感觉到,system("cls")正在引起你在图像中显示的问题。