请教老师大虾简单的代码格式输出问题
发表在C语言图书答疑 2015-10-19
是否精华
版块置顶:
你好,我想请教下
#include<stdio.h>
main()
{
int a,b,c,t;
printf("请输出abc三个数字:\n");
scanf("%d%d%d",&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("输出abc三个数值按顺序排列:\n");
printf("%2d,%2d,%2d",a,b,c);
}
[strong]我输入30,80,50可是输出结果却是排序80,30,50[/strong]
[font color=#FF0000]不是会自动顺序排序输出吗[/font]谢谢!
还有2个问题:
一、还有第一二个条件表达式不成立不是不往下执行吗?成立才执行其后的语句,
二、第三个b>c成立,t=b也就是t是80?b=c可是c不是我输入的50吗?c=t就更不符合逻辑了?还是我把这个代码的意思搞错了?还望指教3Q
分享到:
精彩评论 3
学分: LV1
TA的每日心情
开心
2020-06-16 09:16:38
2015-10-19
沙发
你写的if判断的不对,这么判断:
1)第一个if条件是a大于b时,a与b的值调换,此后ab比较a是较小的,b是较大的
2)第二个if条件是b大于c时,b与c的值调换,此后bc比较b是较小的,c是较大的
此时c是最大的
3)第三个if条件是a大于b时,a与b的值调换,此后ab比较a是最小的,b是较大的
代码:
#include<stdio.h>
#include<windows.h>
int main(void)
{
int a,b,c,t;
printf("请输出abc三个数字:\n");
scanf("%d%d%d",&a,&b,&c);
if (a>b);
{
t=a;
a=b;
b=t;
}

if (b>c);
{
t=c;
c=b;
b=t;
}
if (a>c);
{
t=c;
c=a;
a=t; 
}

printf("输出abc三个数值按顺序排列:\n");
printf("%2d,%2d,%2d",a,b,c);
system("PAUSE"); 
}
Heaven
学分:0 LV1
2015-10-20
板凳

回复:
  谢谢!那t又是起什么作用啊,为什么要if表达式过后还要t=a,a=b,b=t,就是起调换作用?
学分: LV1
TA的每日心情
开心
2020-06-16 09:16:38
2015-10-20
地板
[FIELDSET][LEGEND]引自:2楼[/LEGEND]

回复:
  谢谢!那t又是起什么作用啊,为什么要if表达式过后还要t=a,a=b,b=t,就是起调换作用?
[/FIELDSET]

回复:
  t就是起到一个中间量的作用,帮助调换ab的值
首页上一页 1 下一页尾页 3 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照