C语言题目之输入三个数,按照从大到小的顺序排列

学习目标:

学会简单方法求解输入三个数,按照从大到小的顺序排列


学习内容:

题目:
输入三个整数,按照从大到小的顺序排列
例如:
输入:1 2 3
输出:3 2 1


学习产出:

分析:
首先我们需要假设第一个值为最大的值 (这种思考方式也可以用于排序问题,适合一些少一点数的序列 )

第二,既然我们假设第一个值为最大值,但是如果第3个和第2个的值比第1个值都大,我们就将第2和第3个值与第一个值交换,所以我们这里用两个if语句来实现,而不能用if {} else if{},这样的话如果第一个成立第二个就不会执行。

最后交换完了选出第一个值为最大,再去比较一下第二和第三的值,得出第二大的值和第三大的值。最后运行没有错误,然后我们就会发现交换在三个中都有频繁出现所以我们可以定义一个外部函数swap来交换数值。

接下来上代码:

void swap(int* x, int* y)
{
	int temp = 0;
	temp = *x;
	*x = *y;
	*y = temp;
}
int main()
{
	int a, b, c = 0;
	scanf("%d%d%d",&a,&b,&c);
	if (a < b)
	{
		swap(&a, &b);
	}
	if (a < c) 
	{
		swap(&a,&c); 
	}
	if (b < c) 
	{
		swap(&b, &c); 
	}
	printf("%d %d %d",a,b,c); 
	return 0; 
}


这里交换函数具体参考小编前面函数学习:

【c语言函数学习,从入门到掌握 - CSDN App】链接: link


如本文案对各位读者有所帮助,双击点赞,后续题目及相关c语言知识小编会持续更新

在这里插入图片描述

  • 15
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值