首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >运行时检查失败#2

运行时检查失败#2
EN

Stack Overflow用户
提问于 2013-03-11 18:21:10
回答 1查看 79关注 0票数 0

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

它看起来很乱,尽管我还在学习

发帖地址:http://pastebin.com/B2XaaCYV

它显示“菜单”变量出现运行时错误,但我尝试在5倍左右重新检查它,我没有看到任何错误。代码非常简单,比如xy = default 0=意思是还没有购买。它的值将仅为0/1。挑选发型后实际购买时为1。

那当然了

代码语言:javascript
复制
xy[1][i] means price of xy[0][i]

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

不知道是什么导致了这个错误。所以我希望有人能帮我解决这个问题

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-11 18:43:08

代码语言:javascript
复制
scanf("%1s",&menu);

不是的!char根本不是字符串。如果想要获取单个字符,请使用getchar()scanf("%c",&menu);

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

代码语言:javascript
复制
// 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)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15336111

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档