010 3个数由小到大排序

核心算法:

借助于中间变量,使3个变量中存放的数据两两比较,两两交换,先确定一个最值,再比较另外两个的大小,使最终a中存放的数值最小,c中存放的数值最大,则按a,b,c的顺序输出就是按3个数升序排列。

注意:

因为C程序整体上是顺序结构,而3个数总共有三次两两比较,往往是先确定三者中的一个最值,再比较另外两个的大小比较简单。
所以前两次必须实现将最小的数据存放到a中或者将最大的数据存放到c中,即前两次的比较必须都含有a>或者c<,那么无论前两个if条件判断语句是否执行,都会有a里面存放的数据为最小值或者c里面存放的数据为最大值。

例:任意输入3个整数,编程实现对这3个整数由小到大进行排序,并将排序后的结果显示在屏幕上。

#include<stdio.h>
int main()
{
	int a,b,c,t;
	printf("Please input a,b,c:\n");
	scanf("%d%d%d",&a,&b,&c);
	if(a>b)/*如果a大于b,借助中间变量t实现a与b值的互换,无论是否执行,都有a<b*/
	{
		t=a;
		a=b;
		b=t;
	}
	if(a>c)/*如果a大于c,借助中间变量t实现a与c值的互换,无论是否执行都有a<c*/
	{
		t=a;
		a=c;
		c=t;
	}
	if(b>c)/*如果b大于c,借助中间变量t实现b与c值的互换,无论是否执行,都有b<c*/
	{
		t=b;
		b=c;
		c=t;
	}
	printf("The order of the number is %d,%d,%d\n",a,b,c);
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值