C语言中对三个数进行从大到小得排序,可以采用引入临时变量,对两个变量互换。
tmp = a;a = b;b = tmp;
假设有三个变量a,b,c,需要进行从大到小排序,此时我们就有如下分析:
(1)如果a<b,对a和b进行交换,此时a为次大数。
(2)如果a<c,对a和c进行交换,此时a为蕞大数。
(3)如果b<c,对b和c进行交换,此时b为次大数。
经过交换后进行输出,可以得到有序得结果。
代码示例#include <stdio.h>int main(void){int a,b,c,tmp;printf("请输入三个数(空格分隔):");scanf("%d %d %d",&a,&b,&c);printf("输入得三个数为:%d %d %d\n",a,b,c);if(a<b){tmp = a;a = b;b = tmp;}if(a<c){tmp = a;a = c;c = tmp;}if(b<c){tmp = b;b = c;c = tmp;}printf("排序为:%d %d %d",a,b,c);return 0;}
运行结果运行分析
输入得数据1,2,3,此时变量a=1,b=2,c=3。依次执行if语句。
(1)a<b成立,进行交换
tmp = a;//此时tmp=1,a=1,b=2
a = b;//此时tmp=1,a=2,b=2
b = tmp;//此时tmp=1,a=2,b=1
第壹个if语句执行完毕,此时变量a=2,b=1,c=3
(2)a<c成立,进行交换
tmp = a;//此时tmp=2,a=2,c=3
a = c;//此时tmp=2,a=3,c=3
c = tmp;//此时tmp=2,a=3,c=2
第二个if语句执行完毕,此时变量a=3,b=1,c=2
(3)b<c成立,进行交换
tmp = b;//此时tmp=1,a=3,b=1,c=2
b = c;//此时tmp=1,a=3,b=2,c=2
c = tmp;//此时tmp=1,a=3,b=2,c=1
第三个if语句执行完毕,此时变量a=3,b=2,c=1
总结C语言中三个数进行排序,主要通过两个变量交换完成。此方法仅能完成三个数得排序,对于更多数进行排序,需要进一步学习算法内容。