C语言 这个提神么地方错了

来源:百度知道 编辑:UC知道 时间:2024/06/19 09:36:16
main()
{int a,b,c,t;
scanf("%d%d%d",&a&b&c);
if(a>b)
(t=a,b=t,a=t);
else if(a>c)
(t=a,c=t,a=t);
else if(b>c)
(t=b,c=t,b=t);
printf("%d,%d,%d",a,b,c);
}
求abc由大到小排列

#include "stdio.h"
main()
{int a,b,c,t;
scanf("%d%d%d",&a,&b,&c); //错就在这句话!
if(a>b)
(t=a,a=b,b=t); //楼主写的非常有创意,未用if(){;;}这一传统方式;而是利
//用了 if()表达式; 这一方式.看样子我得多多学习.
//有不同意见的莫要骂我!^_^!
else if(a>c)
(t=a,a=c,c=t);//这里顺序搞反了!
else if(b>c)
(t=b,b=c,c=t);
printf("%d,%d,%d",a,b,c);
}

多练练吧,多看点书(最重要是仔细),很多地方有问题的

t=a,b=t,a=t; 你的数据交换方式错了。应该是t=a;a=b;b=t;否则你做出来的a的值并没有变化。。。后面的也都一样。

自己仔细看

交换数据出错了

错误太多,赋值语句后面那用逗号隔开
比大小交换那语句也是错的:
修改如下:

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

WIN-TC 通过编译
输入 1 5 3
输出 1<3<5