输入正整数,将正整数中每位数字重新排列,分别组成一个最大数和最小数依次输出,两数间用空格分隔
4条回答 默认 最新
技术专家团-小桥流水 2022-05-09 18:27关注如下:

#include <iostream> using namespace std; int main() { int n; int a[20]; int i, j, len=0,t; cin >> n; //将n的各位数字存入数组 while (n) { a[len] = n % 10; len++; n /= 10; } //冒泡排序 for (i = 0; i < len - 1; i++) { for (j = 0; j < len - 1 - i; j++) { if (a[j] > a[j + 1]) //升序排列(从小到大) { t = a[j]; a[j] = a[j + 1]; a[j + 1] = t; } } } //最大数 int max = 0; for (i = len - 1; i >= 0; i--) { max = max * 10 + a[i]; } //最小数 int min = 0; for (i = 0; i < len; i++) { min = min * 10 + a[i]; } cout << max << " " << min; return 0; }评论 打赏 举报解决 5无用