C语言程序题 C语言选择题 程序设计

[复制链接]
查看11 | 回复4 | 2011-3-18 17:14:19 | 显示全部楼层 |阅读模式
main( )
{ int a,b,c,x;
scanf("%d%d%d",&a,&b,&c);
if (a>b)
{ x=a; a=b; b=x; }
if(a>c)
{ x=a; a=c; c=x; }
if (b>c)
{ x=b; b=c; c=x; }
printf("%d %d %d\n",a,b,c);
}
对abc之间的交换很糊涂,谁给简单清晰的解释一下~~3Q!

回复

使用道具 举报

千问 | 2011-3-18 17:14:19 | 显示全部楼层
第一个if,如果a大于b的话,将a和b互换,使a保存a和b之前较小的值。第二个if,如果现在的a和c比,如果a比c大的话,换,还是让a保存其中较小的值。这个时候如果两个if都成立的话,那么a 就是最小的值了,然后比较下b,c就可以了。交换过程呢,就是,把a的值先存在一个临时变量x中,然后,a保存较为小的值,b保存a的值,下面的同理。
回复

使用道具 举报

千问 | 2011-3-18 17:14:19 | 显示全部楼层
if (a>b) { x=a; a=b; b=x; }就是说,看a是否大于b,如果a>b,则把a变量的值先赋值给x变量(这时,a变量中的值就到x变量里面了),然后把b变量的值赋值给a变量(这时,a变量中的值就是b了),最后把x变量中的值(这个x的值,就是最开头a变量中的值)赋值给了b中。这样,就把a变量中的值和b变量中的值给互换了,下面那2个if
回复

使用道具 举报

千问 | 2011-3-18 17:14:19 | 显示全部楼层
x 是临时存放东西变量这种3个赋值的作用是交换值的意思//如果a大于bif (a > b){
x = a; a赋给x
a = b; b赋给a
b = x; x赋给b}这样a 和 b 原本的值就交换了位置后面的代码意思都类似
回复

使用道具 举报

千问 | 2011-3-18 17:14:19 | 显示全部楼层
当a>b时,a跟b交换,当a>c时,a跟c交换,当b>c时,b跟c交换,最后这三个数中,a里存着最小的值,c中存着最大的值
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行