输入整数,按照从大到小的排序输出(两个方法,一个思考)

您所在的位置:网站首页 vb输入三个数按从大到小顺序输出 输入整数,按照从大到小的排序输出(两个方法,一个思考)

输入整数,按照从大到小的排序输出(两个方法,一个思考)

2024-05-08 23:51| 来源: 网络整理| 查看: 265

输入三个整数a,b,c,按从大到小的排序输出

 

方法一:

输入数据后不改变a,b,c,的值,区分3个数从大到小的各种排序情形,分情况输出

那么我们可以很简单的得出只用六种可能,所以代码如下

#include main() { int a, b, c; printf("请输入分别三个整数a,b,c:\n"); scanf_s("%d %d %d", &a, &b, &c); if (a > b && a > c && b > c) { printf("从大到小的排序为:%d>%d>%d", a, b, c); } else if (a > c && c > b) { printf("从大到小的排序为:%d>%d>%d", a, c, b); } else if (b > c && c > a) { printf("从大到小的排序为:%d>%d>%d", b, c, a); } else if (b > a && a > c) { printf("从大到小的排序为:%d>%d>%d", b, a, c); } else if (c > a && a > b) { printf("从大到小的排序为:%d>%d>%d", c, a, b); } else if (c > b && b > a) { printf("从大到小的排序为:%d>%d>%d", c, b, a); } else { printf("您输入的字符不符合要求,请重新输入!"); } }

 

运行结果如下:

 

 

方法二:

通过比较和交换,先使a中存储最大的数,b次之,c最小,再输出。变量值的交换

我们可以用一个简单的替换,如:d = b;  b = c;  c = d;  所以代码为:

#include main() { int a, b, c, d; printf("请输入分别三个整数a,b,c:\n"); scanf_s("%d%d%d",&a,&b,&c); if (a 1) //循环向数组中存入数,当循环 { i++; num--; } printf("排列之前的顺序为:"); for (int length = 0; length < n; length++) { printf("%3d", a[length]); } for (int j = 0; j < n - 1; j++) //比较n-1轮 { for (int k = 0; k < n - 1 - j; k++) //每轮比较n-1-i次, { if (a[k] < a[k+1]) //从大到小 { temp = a[k]; a[k] = a[k+1]; a[k+1] = temp; } /* if (a[k] > a[k + 1]) //从小到大 { temp = a[k]; a[k] = a[k + 1]; a[k + 1] = temp; } */ } } printf("\n"); printf("排列之后的顺序为:"); for (int len = 0; len < n; len++) { printf("%3d", a[len]); } printf("\n"); }

运行结果如下:

书上说 难度三个星 

希望对你有所帮助

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3