关于C语言的一个问题,当if语句后的花括号去掉之后

#include<stdio.h>main(){inta,b,t;printf("a,b=");scanf("%d%d',&a,&b);if(a<b){t=a;a=b;b... #include<stdio.h>
main()
{
int a,b,t;
printf("a,b=");
scanf("%d%d',&a,&b);
if (a<b)

t=a;
a=b;
b=t;

pritf("%d%d\n",a,b);
}

当if语句后的花括号去掉之后,当输入两个数为12、37后答案是3712,而输入两个数为59、28,结果为什么会是28-858993460
展开
 我来答
百度网友e1b0deb
2013-01-04 · TA获得超过838个赞
知道小有建树答主
回答量:669
采纳率:0%
帮助的人:312万
展开全部
当你把if后的大括号去掉后,那么这时if语句的执行语句只有一条就是:t=a
这是如果输入的 a 比 b小就是说满足if的执行条件,那么和你不去掉大括号是一样的
都都会完成ab交换

但是,当你输入的a》b时,if (a<b) t=a;不会被执行
会直接在下一条也就是 a=b执行
所以你的28可以正确得到
而此时的t并没有被准确赋值,t的值是编译程序随机赋值的,所以b=t这句之后,b才会那样
an0011121
2013-01-04 · TA获得超过1.1万个赞
知道大有可为答主
回答量:3948
采纳率:55%
帮助的人:2537万
展开全部
if (a<b){t=a;a=b;b=t;}
你说的是这一对花括号吗?
如果不加花括号,与if自动贴合的只会是t=a;也就是if下面的第一句话,其他的都和if没有关系了。也就是成了if(a<b) t=a;这样的结构,如果a<b成立,那就t=a吧,至于a=b;b=t;就与if判断没有关系了。而是执行完if这个整体结构后顺序往下遇到的结构。
如果不去掉花括号,if后面的三句话是一个整体,if条件成立的话都执行,否则都不执行。
去掉花括号,if成立执行第一句,然后下面不属于if结构但是顺序执行;如果if不成立,第一句t=a不执行,继续执行下面的两句。
就和else和if的关系似的,else只贴合于距离他最近的那个if。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
风灬清灬云淡
2013-01-04 · TA获得超过308个赞
知道答主
回答量:77
采纳率:0%
帮助的人:55.4万
展开全部
当花括号去掉之后只有第一句是会跟着if判断的,后面两句是必定执行的。
当你输入12和37之后,判断a<b不为0,if后面那一句执行,t=12,然后a=37,b=12。
当你输入59和28之后,判断a<b为0,if后面那一句不执行,然后执行a=b,b=t,也就是a=28,b=t,由于t没赋初值,t就是给他分配的那块内存空间中原先存的数,就是那一堆乱数,然后b就等于那一堆乱数了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
创作者OQrKdPzGOR
2020-07-14 · TA获得超过4223个赞
知道大有可为答主
回答量:3222
采纳率:28%
帮助的人:256万
展开全部
当你把if后的大括号去掉后,那么这时if语句的执行语句只有一条就是:t=a
这是如果输入的
a

b小就是说满足if的执行条件,那么和你不去掉大括号是一样的
都都会完成ab交换
但是,当你输入的a》b时,if
(a<b)
t=a;不会被执行
会直接在下一条也就是
a=b执行
所以你的28可以正确得到
而此时的t并没有被准确赋值,t的值是编译程序随机赋值的,所以b=t这句之后,b才会那样
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
创作者03sTNCE2j7
2019-09-28 · TA获得超过3534个赞
知道大有可为答主
回答量:3074
采纳率:26%
帮助的人:241万
展开全部
当你把if后的大括号去掉后,那么这时if语句的执行语句只有一条就是:t=a
这是如果输入的
a

b小就是说满足if的执行条件,那么和你不去掉大括号是一样的
都都会完成ab交换
但是,当你输入的a》b时,if
(a<b)
t=a;不会被执行
会直接在下一条也就是
a=b执行
所以你的28可以正确得到
而此时的t并没有被准确赋值,t的值是编译程序随机赋值的,所以b=t这句之后,b才会那样
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(9)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式