返回

输入三个数字,将三个数字按从大到小的顺序输出(两种解法)

发布时间:2022-12-28 09:16:35 284

法一:全用if,由于题目只输入输出三个数字,情况较少,可以用if一一罗列出来,即如果a最大、如果b最大、如果c最大的情况

#include
int main()
{
int a,b,c;
printf("请输入三个数字:");
scanf("%d %d %d",&a,&b,&c);
if(a>b&&b>c)
{
printf("从大到小排列:%d %d %d",a,b,c);
}
if(a>b&&b<c)
{
if(a>c)
{
printf("从大到小排列:%d %d %d",a,c,b);
}
else
{
printf("从大到小排列:%d %d %d",c,a,b);
}
}
if(a<b&&b<c)
{
printf("从大到小排列:%d %d %d",c,b,a);
}
if(a<b&&b>c)
{
if(a>c)
{
printf("从大到小排列:%d %d %d",b,a,c);
}
else
{
printf("从大到小排列:%d %d %d",b,c,a);
}
}
return 0;
}

运行结果:

输入三个数字,将三个数字按从大到小的顺序输出(两种解法)_#include

注:不要将情况考虑掉了,要理清思路

法二:

算法实现:a中放最大值;b次之;中放最小值

#include
int main()
//算法实现:a中放最大值;b次之;中放最小值
{
int a,b,c;
printf("请输入三个数:");
scanf("%d %d %d",&a,&b,&c);
if(a<b)
{
int tem=a;
a=b;
b=tem;
}
if(a<c)
{
int tem=a;
a=c;
c=tem;
}
if(b<c)
{
int tem=b;
b=c;
c=tem;
}
printf("%d %d %d",a,b,c);
return 0;
}

1.由于只需要对三个数进行排列,比较三个数之间的大小并进行排序,所以思考一下,需明白只需要比对三次这之间的大小就可以得出结果:及a与b、a与c和b与c

2.为使该运算更清晰,我们引入了第三个变量“tem”将不合题目要求的数字给替换掉

即用如图来表示将位置调换

输入三个数字,将三个数字按从大到小的顺序输出(两种解法)_#中间变量_02


特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线