24小时热门版块排行榜    

查看: 1561  |  回复: 6

listenkang

新虫 (初入文坛)

[求助] 请C语言的人们看看我这个最简单的小程序哪里有问题呢

没有报错 只是不是我想要运行的正确的结果。我想要这个程序实现的是:随机两个数相加,若输出正确的结果,则显示you are right,显示错误的结果,则显示you are wrong,然后问你是否要继续,请输入y或者n,如果你输入y,则重新开始,如果输入n,则谢谢你,你输入其他字符,则提示你请正确输入y或者n。
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
void main()
{int x,y,z;char c;
l:  x=rand();
        y=rand();
printf("%d+%d=?\n",x,y);
scanf("%d",&z);
z=x+y?printf("you are right\n":printf("you are wrong\n";

printf("do you want more? please answer with y or n\n";

m: scanf("%c",&c);
switch(c)
{case '\n':printf("thankyou!bye bye";break;
case '\y':goto l;break;
default:printf("please enter y or n again\n";goto m;
}
}
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jackdaniel

捐助贵宾 (著名写手)

做最善良的那一只

【答案】应助回帖

感谢参与,应助指数 +1
switch(c)这句里好像是有问题的,为什么'n'和'y'要处理成'\n'和'\y'?'\n'是回车换行啊。。还有,如果没记错scanf("%c",&c)这句之前应该再有一句来处理输入的结果z之后的那个回车。。
然后就是建议给出所谓的“不是我想要运行的正确的结果”的结果,并且最好能自己进行一下单步调试,毕竟这段代码并不复杂。
对自己负责
2楼2013-07-08 12:31:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Medichen

铜虫 (小有名气)

【答案】应助回帖

感谢参与,应助指数 +1
z=x+y?printf("you are right\n)":printf("you are wrong\n";
改成下面试试:
z==x+y?printf("you are right\n)":printf("you are wrong\n";
另,你的程序用了太多的goto,改成循环好些
笨鸟先飞!
3楼2013-07-08 12:32:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

youth0826

至尊木虫 (著名写手)

weibo.com/138147022

【答案】应助回帖

感谢参与,应助指数 +1
循环用while,里面带getchar
QQ群:202610705,关注计算机视觉,模式识别,模式分析,机器学习,人工智能,统计学习,图像处理等,欢迎加入!
4楼2013-07-08 12:52:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

twofirst

木虫 (正式写手)

挖掘机

【答案】应助回帖

感谢参与,应助指数 +1
3楼说得对,初学者要注意判断等式是 ==。
goto方面,可以练习一下去了解运行过程,但在实际应用中能不用尽量不用,因为有不少专家发文章批判它,现在它快“臭名昭著”了
我要挖得更深~挖得更深~~
5楼2013-07-08 14:42:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hyj22998

金虫 (小有名气)

【答案】应助回帖

感谢参与,应助指数 +1
是条件运算语句:z=x+y?printf("you are right\n":printf("you are wrong\n" 的错误。
应改为:z==x+y?printf("you are right\n":printf("you are wrong\n"。
一个等号在C语言中是赋值运算符,两个等号“==”才是判断是否相等的关系运算符。在原语句中是将x,y赋值给Z,然后执行的是printf("you are right\n",虽然是逻辑与设定的逻辑不符,但编译器只给出语法错误,而不能发现逻辑错误,逻辑错误需debug才能发现。
6楼2013-07-08 17:13:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

linhuibiao

金虫 (小有名气)

【答案】应助回帖

goto语句改用for或while语句来实现循环程序会更容易读
你这个程序,最好用函数调用来实现替换goto语句
z=x+y?printf("you are right\n":printf("you are wrong\n";
改为:z==x+y?printf("you are right\n":printf("you are wrong\n";
case '\y':goto l;break;
改为:case 'y':goto l;break;
7楼2013-08-05 18:24:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 listenkang 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 一志愿中海洋材料工程专硕330分求调剂 +7 小材化本科 2026-03-18 7/350 2026-03-19 10:46 by Linda Hu
[考研] 材料080500调剂求收留 +4 一颗meteor 2026-03-13 4/200 2026-03-19 10:32 by 30660438
[考研] 材料工程专硕调剂 +5 204818@lcx 2026-03-17 6/300 2026-03-18 22:55 by 204818@lcx
[考研] 085410人工智能专硕317求调剂(0854都可以) +3 xbxudjdn 2026-03-18 3/150 2026-03-18 22:14 by zhq0425
[考研] 085601材料工程专硕求调剂 +6 慕寒mio 2026-03-16 6/300 2026-03-18 14:26 by 007_lilei
[考研] 299求调剂 +5 △小透明* 2026-03-17 5/250 2026-03-18 11:49 by 尽舜尧1
[考研] 0703化学求调剂 总分331 +3 ZY-05 2026-03-13 3/150 2026-03-18 10:58 by macy2011
[考研] 301求调剂 +9 yy要上岸呀 2026-03-17 9/450 2026-03-18 08:58 by 无际的草原
[考研] 材料与化工求调剂 +6 为学666 2026-03-16 6/300 2026-03-17 20:15 by peike
[考研] 梁成伟老师课题组欢迎你的加入 +8 一鸭鸭哟 2026-03-14 10/500 2026-03-17 15:07 by 一鸭鸭哟
[考博] 东华理工大学化材专业26届硕士博士申请 +6 zlingli 2026-03-13 6/300 2026-03-15 20:00 by ryzcf
[考研] 一志愿哈工大材料324分求调剂 +5 闫旭东 2026-03-14 5/250 2026-03-14 14:53 by 木瓜膏
[考研] 297求调剂 +4 学海漂泊 2026-03-13 4/200 2026-03-14 11:51 by 热情沙漠
[考研] 学硕285求调剂 +13 Wisjxn 2026-03-12 46/2300 2026-03-14 10:33 by JourneyLucky
[考研] 330求调剂 +3 ?酱给调剂跪了 2026-03-13 3/150 2026-03-14 10:13 by JourneyLucky
[考研] 266求调剂 +4 学员97LZgn 2026-03-13 4/200 2026-03-14 08:37 by zhukairuo
[考研] 295求调剂 +3 小匕仔汁 2026-03-12 3/150 2026-03-13 15:17 by vgtyfty
[考研] 290求调剂 +7 ADT 2026-03-12 7/350 2026-03-13 15:17 by JourneyLucky
[考研] 328化工专硕求调剂 +4 。,。,。,。i 2026-03-12 4/200 2026-03-13 14:44 by JourneyLucky
[考研] 材料301分求调剂 +5 Liyouyumairs 2026-03-12 5/250 2026-03-13 14:42 by JourneyLucky
信息提示
请填处理意见