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