0

我正在练习我的 C Prog 语言,我决定创建一个具有收银员功能的沙龙

看起来很乱,虽然我还在学习

发布在这里: http: //pastebin.com/B2XaaCYV

它说变量“菜单”的运行时错误,但我试图重新检查它大约 5 倍,我没有看到任何错误。代码非常简单,例如 xy[0][1] = 默认 0 = 表示尚未购买。它的值将仅为 0/1。选择发型后实际购买时为1。

那么当然

xy[1][i] means price of xy[0][i]

我尝试使用其他技术,例如删除中断和更改变量名称,但它仍然显示变量菜单的运行时错误

不知道是什么导致了错误。所以我希望有人可以帮助我

4

1 回答 1

1
scanf("%1s",&menu);

不!Achar根本不是字符串。您想获得单个字符,因此请使用getchar()scanf("%c",&menu);

一个相关的错误是在您的core_return中,您尝试将 3 个字符读入一个字符。另外,不要main在子程序中调用你的。而是从子例程返回并在主程序中放置一个循环。顺便说一句,'yes'并且'no'无效。如果要比较字符串,则必须使用strcmp

// returns 1 if the user wants to go again
int another_menu(void)
{
    char tmp[20];
    printf("Do you want another service?");

    for(;;){
        scanf("%3s",tmp);
        if(strcmp("y",tmp) || strcmp("yes",tmp))
            return 0;
        else if(strcmp("n",tmp) || strcmp("no",tmp))
            return 1;
        printf("Please specify either 'no' or 'yes': ");
    }
}

使用编译器警告可以更快地找到错误 (GCC: -Wall -Wextra)。

于 2013-03-11T10:43:08.060 回答