C语言实验——三个数排序
输入三个整数x,y,z,请把这三个数由小到大输出。
输入格式:
输入数据包含3个整数x,y,z,分别用逗号隔开。
输出格式:
输出由小到大排序后的结果,用空格隔开。
方法一
数学方法
#include <stdio.h>
int main()
{
int a,b,c,t;
scanf("%d,%d,%d",&a,&b,&c);
if(a>=b) {t=a;a=b;b=t;}//b>=a
if(a>=c) {t=a;a=c;c=t;}//c>=a
if(b>=c) {t=b;b=c;c=t;}//c>=b
printf("%d %d %d",a,b,c);
return 0;
}
先用b,c分别和a作比较,通过置换让a变成最小的,再b,c比较,把最大的置换给c,达成a,b,c由小到大排序
方法二
冒泡法
int main()
{
int a,b,c,t;
scanf("%d,%d,%d",&a,&b,&c);
if(a>=b) {t=a;a=b;b=t;}//b>=a
if(b>=c) {t=b;b=c;c=t;}//c>=b
//三个数中把最大值推给c
if(a>=b) {t=a;a=b;b=t;}//b>=a
//两个数中把较大值推给b
printf("%d %d %d",a,b,c);
return 0;
}
先把最大的推给c,3个数只需要2个if,再依此类推把较大的推给b,完成排序