一段C语言的代码,大家帮我看看是哪里出了问题(2)

比较下面两个代码的区别:题目:输入3个整数,要求从小到大输出;第一段:#include<stdio.h>intmain(){inta,b,c,t;printf("请输入3... 比较下面两个代码的区别:
题目:输入3个整数,要求从小到大输出;
第一段:
#include<stdio.h>
int main()
{
int a,b,c,t;
printf("请输入3个整数:\n");
scanf("%d %d %d",&a,&b,&c);
if(a>b)
{
t=b;
b=a;
a=t;
}
else if(a>c)
{
t=c;
c=a;
a=t;
}
else if(b>c)
{
t=c;
c=b;
b=t;
}
else
printf("%d%d%d\n",a,b,c);
return 0;
}

第二段:
#include<stdio.h>
int main()
{
int a,b,c,t;
printf("请输入3个整数:\n");
scanf("%d %d %d",&a,&b,&c);
if(a>b)
{
t=b;
b=a;
a=t;
}
if(a>c)
{
t=c;
c=a;
a=t;
}
if(b>c)
{
t=c;
c=b;
b=t;
}
printf("从小到大输出是:\n");
printf("%d,%d,%d\n",a,b,c);
return 0;
}

第二段代码可以运行出来,第一段不可以,为什么?????
展开
 我来答
匿名用户
2012-10-01
展开全部
第一段程序错误地将输出语句放在了else子句中,意思是当前面的if条件都不成立时,才输出。

而且排序时三个if都应该执行,但是现在这种情况,只会执行其中的一个,所以排序也不正确。

修改方法,去掉所有的else关键字。
睡在月弯上
2012-10-01
知道答主
回答量:1
采纳率:0%
帮助的人:1577
展开全部
1,编程首先一定要做的是让问题简单,避免脑子糊了 ;
2,实现3个数排序,按你思路,则必须要实现两次比较;
3,但你的代码因使用了if,,else,导致至进行一次比较,故不可行 ;
4,解决办法:去掉else即可;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
real晓文
2012-10-01 · TA获得超过228个赞
知道小有建树答主
回答量:193
采纳率:0%
帮助的人:124万
展开全部
没看出来
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式