查理和巧克力工厂书评:有3个数a,b,c,要求按大小顺序把它们打印出来。

来源:百度文库 编辑:中科新闻网 时间:2024/05/09 04:26:01
大家看一下哪里错了?
main()
{
int a,b,c,t;
scanf("%d%d%d",&a,&b,&c);
if (a>b)
{
t=a;a=b;b=t;
}
if(a>c)
{
if(c>b)
{
printf("%d %d %d\n",a,c,b);
}
else
printf("%d %d %d\n",a,b,c);
}
else
printf("%d %d %d\n",c,a,b);
}

开始
输入a,b,c
a>b
a,b互换
如果a>c
如果c>b
打印a,c,b
如果c<b
打印a,b,c
如果a<c
打印c,a,b
要求按汉字说明修改,自己找不到错误了!!

//修改后的说明,按照说明你再把你的程序改了就行了

开始
输入a,b,c
a>b
a,b互换(注意:此时a<=b)
如果a>c
输出b, a, c;

如果a<c
如果c>b
输出c,b,a
如果c<b
输出b,c,a

楼主啊,你是从大到小输出,那么a>b时,你为什么还要互换a b?
你的程序是有逻辑问题吧.

你的方法也太麻烦了吧。还特别容易出错的啊。你就找个简单点的啊。

int a,b,c,t;
scanf("%d%d%d",&a,&b,&c);

if(a>c)
{
if(c>b) printf("%d %d %d\n",a,c,b);

else
if(a<b)printf("%d,%d,%d\n",b,a,c);
else
printf("%d %d %d\n",a,b,c);
}
else
{
if(a<b)printf("%d,%d,%d",c,b,a);
else
printf("%d %d %d\n",c,a,b);
}
这个很简单,不用说明了吧

当a>b 交换后a是a b 中较小的,此时如果a>c 那么怎么还会有可能c>b的情况发生