运行时检查失败#2

时间:2013-03-11 10:21:10

标签: c

我正在练习我的C Prog语言 我决定创建一个带收银台功能的沙龙

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

张贴在这里:http://pastebin.com/B2XaaCYV

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

当然

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

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

不知道是什么造成了错误。所以我希望有人能帮助我这个

1 个答案:

答案 0 :(得分:1)

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

没有! char根本不是字符串。您希望获得单个字符,因此请使用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)。