| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1360 人关注过本帖
标题:a,b,c从大到小顺序排列问题求助
只看楼主 加入收藏
指尖弹出寂寞
Rank: 1
等 级:新手上路
帖 子:28
专家分:5
注 册:2013-7-28
收藏
 问题点数:0 回复次数:13 
a,b,c从大到小顺序排列问题求助
#include <stdio.h>
void main()
{
 float a,b,c,t;
 printf("请输入a,b,c的值:\n");
 scanf("%f,%f,%f",&a,&b,&c);
 if (a<b) t=a;a=b;b=t;
 if (a<c) t=a;a=c;c=t;
 if (b<c) t=b;b=c;c=t;
 printf("a,b,c由大到小顺序为:\n%6.2f,%6.2f,%6.2f\n",a,b,c);
}
加红的地方要用大括号括起来我想不明白。我感觉c语言不是按顺序执行么?那么不用加大括号不是也可以进行赋值了么?
这个是谭浩强书中的程序。
搜索更多相关主题的帖子: include 
2013-07-28 09:22
指尖弹出寂寞
Rank: 1
等 级:新手上路
帖 子:28
专家分:5
注 册:2013-7-28
收藏
得分:0 
请大神能不能给出一个比较详细的解释?
2013-07-28 09:23
丶弱水彡千
Rank: 5Rank: 5
来 自:地狱十九层
等 级:职业侠客
威 望:2
帖 子:203
专家分:369
注 册:2013-6-16
收藏
得分:0 
if语句只是作用于它下面第一行  不加大括号的话  只是执行t=a;

这个怎么玩
2013-07-28 09:28
指尖弹出寂寞
Rank: 1
等 级:新手上路
帖 子:28
专家分:5
注 册:2013-7-28
收藏
得分:0 
那他接下来会执行哪一行?   不是接下来又执行执行a=b么?因为他们中间都是用分号隔开的,是一个独立的句子。
2013-07-28 09:31
指尖弹出寂寞
Rank: 1
等 级:新手上路
帖 子:28
专家分:5
注 册:2013-7-28
收藏
得分:0 
回复 3楼 丶弱水彡千
那他接下来会执行哪一行?   不是接下来又执行执行a=b么?因为他们中间都是用分号隔开的,是一个独立的句子。 谢谢大神了,小弟是新学的c,请见谅。
2013-07-28 09:32
vvvevvv
Rank: 2
来 自:黑龙江
等 级:论坛游民
帖 子:129
专家分:92
注 册:2010-9-9
收藏
得分:0 
你整个程序是软件没有检查中“错误”,就可以进行执行,但是有没有结构(这个词用的好太准确)上的错误是不能检查出来的。不用加大括号可以进行赋值,但是后面的if就完全和你想要的不一样了。
就按照你的程序来说吧。如果,你输入的数字是1,2,3  你的程序结果一点问题没有,但是,这只是凑巧(你的if条件是c>b>a)。
那么咱们举一个例子。假设你输入的数字是3,2,1 首先if(a<b) 语句不执行,直接执行a=b;和b=t。  这时候你a的值是2.t是变量 根本就没有值 b的值就不存在了。
继续向下执行。if(a<c) 现在的a的值是2  2>1 所以不执行这个if语句 直接执行下面的语句  后面的同上。

也就是说,如果if下面不加括号,那么属于if的语句就是挨着if的下一条语句,后面的就都不是。如果加上括号 比如if(a<b){t=a;a=b;b=t;}  他的意思是  当a<b时,就会执行大括号中的语句。如果a不小于b 那么 大括号中的语句都不执行。 你现在的程序是  不管a和b的关系,a=b;b=t; 都会执行。

我只能表达成这样。。。

学习~
2013-07-28 09:41
指尖弹出寂寞
Rank: 1
等 级:新手上路
帖 子:28
专家分:5
注 册:2013-7-28
收藏
得分:0 
回复 6楼 vvvevvv
厉害!!!  我懂了!谢了。
2013-07-28 09:46
天楚
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:楚地
等 级:小飞侠
帖 子:550
专家分:2113
注 册:2013-3-14
收藏
得分:0 

呵呵!加油学习

没有哪条路好走,选择了,就坚持下去~~~~
2013-07-28 15:42
逍遥狼
Rank: 1
等 级:新手上路
帖 子:8
专家分:2
注 册:2013-7-28
收藏
得分:0 
回复 6楼 vvvevvv
说的有道理啊。必须要加括号
2013-07-28 16:14
小小程序猿
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:1
帖 子:755
专家分:2785
注 册:2013-7-18
收藏
得分:0 
路过
     
      学习

孤独与寂寞是催化一个人迅速成长的良药,没有之一
2013-07-28 16:42
快速回复:a,b,c从大到小顺序排列问题求助
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018613 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved