快捷搜索:  汽车  科技

c语言怎么对三个整数排序从小到大?C语言对三个数进行从大到小的排序

c语言怎么对三个整数排序从小到大?C语言对三个数进行从大到小的排序tmp = a;//此时tmp=1,a=1,b=2(1)a<b成立,进行交换(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;

分析

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; }运行结果

c语言怎么对三个整数排序从小到大?C语言对三个数进行从大到小的排序(1)

运行分析

输入的数据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语言中三个数进行排序,主要通过两个变量交换完成。此方法仅能完成三个数的排序,对于更多数进行排序,需要进一步学习算法内容。

猜您喜欢: