24小时热门版块排行榜    

Znn3bq.jpeg
查看: 1605  |  回复: 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 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 初试分332,一志愿报考西北工业大学, +9 故人?? 2026-04-09 9/450 2026-04-09 19:52 by gong120082
[考研] 301求调剂 +3 静静想想 2026-04-05 3/150 2026-04-09 19:12 by 诗与自由
[考研] 085600材料与化工301分求调剂院校 +33 刺痛jk 2026-04-06 34/1700 2026-04-09 18:31 by hy861222
[考研] 一志愿985初试354分生物调剂 +3 031001 2026-04-06 3/150 2026-04-09 00:30 by Evan_Liu
[考研] 320分人工智能调剂 +9 振—TZ 2026-04-03 10/500 2026-04-08 19:56 by 振—TZ
[考研] 电子信息346 +4 zuoshaodian 2026-04-08 4/200 2026-04-08 11:54 by zzucheup
[考研] 316求调剂 +4 15318418673 2026-04-07 4/200 2026-04-07 22:12 by hemengdong
[考研] 22408 318分求调剂 +4 勤奋的小笼包 2026-04-06 6/300 2026-04-07 15:05 by 纸鹤555
[考研] (调剂)一志愿报考哈尔滨工业大学0857资源与环境专业378分考生 +7 狠狠加油 2026-04-05 8/400 2026-04-06 16:52 by momo皓
[考研] 362求调剂一志愿中国石油大学 +4 我要考大 2026-04-06 6/300 2026-04-06 14:11 by 无际的草原
[考研] 331求调剂 +8 于征yz 2026-04-05 8/400 2026-04-06 00:54 by fmesaito
[考研] 308求调剂 +4 maverick^_^ 2026-04-03 4/200 2026-04-05 19:08 by 蓝云思雨
[考研] 一志愿江南大学085501机械工程专硕326分,本科佳木斯大学 +5 顾若浮生 2026-04-03 9/450 2026-04-05 09:57 by 1753564080
[考研] 考研调剂 +11 小sun要好运 2026-04-04 11/550 2026-04-05 08:02 by qlm5820
[考研] 能动调剂326专硕 +4 wan112233 2026-04-04 4/200 2026-04-04 22:47 by yu221
[考研] 278求调剂 +14 范婷娜 2026-04-04 15/750 2026-04-04 22:15 by lqwchd
[考研] 085701求调剂 +7 龚禹铭 2026-04-04 8/400 2026-04-04 13:49 by 小小树2024
[考研] 26调剂 086003 +6 失活的细胞 2026-04-04 6/300 2026-04-04 09:50 by zhangdingwa
[考研] 调剂 +5 asdasdassda 2026-04-03 6/300 2026-04-03 20:27 by 岸上的一条鱼
[考研] 求材料调剂 一志愿南昌大学 328分 +5 yyy..... 2026-04-03 5/250 2026-04-03 13:46 by 百灵童888
信息提示
请填处理意见