求帮写c++五位数输出升序数代码

对一个五位数的整数,求出其升序数。例如75623则结果是23567.
要求用c++函数实现

不断除10取余数放到数组中再排序数组即可

你题目的解答代码如下:

#include <iostream>
using namespace std;

void sort(int a[],int n)
{
    int i,j;
    for(i=0;i<n-1;i++)
        for(j=0;j<n-i-1;j++)
            if(a[j] > a[j+1])
            {
                int t = a[j];
                a[j] = a[j+1];
                a[j+1] = t;
            }
}

int main()
{
    int n,i,l=0;
    int a[5];
    cin >> n;
    do {
        a[l++] = n%10;
        n/=10;
    }
    while(n>0);
    sort(a,l);
    for(i=0;i<l;i++)
        cout << a[i];
}

如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

img

前面都是学校用的初级玩法,更适合你,真正工作的时候,我这样更加省事,代码兼容任意长度的数字,不只是五位

img

#include <iostream>
#include <string>
#include <vector>
#include <algorithm>

int main()//主函数 
{
    int tmp = 1237482351515;

    std::cout << "排序前:" << tmp;

    // 先找个容器,来存点东西,存什么?往后看
    std::vector<int> vec; 

    // 既然需要排序,我们就先拆分下数字
    do 
    {
        // 至少一位数字是有的,不用判断直接开始拆分
        vec.push_back(tmp % 10);
        tmp = tmp / 10;
    } while (tmp !=0);

    // 排序
    std::sort(vec.begin(), vec.end());

    // 重新拼成数字 用到了C11语法,推荐你使用 visual studio 2019 以上的编译器
    for (auto it : vec)
    {
        tmp = tmp * 10 + it;
    }

    std::cout << "\t 排序后:" << tmp << std::endl;

    return 0;
}

解析出各位数字后排序重新输出即可。
代码如下:

#include <iostream>
using namespace std;

int main()
{
    int i=0, j, t;
    int n,a[5];
    cin >> n;
    while (n)
    {
        a[i] = n % 10;
        n /= 10;
        i++;
    }
    //排序
    for (i = 0; i < 4; i++)
    {
        for (j = 0; j < 4 - i; j++)
        {
            if (a[j] < a[j + 1])
            {
                t = a[j];
                a[j] = a[j + 1];
                a[j + 1] = t;
            }
        }
    }
    n = 0;
    for (i = 0; i < 5; i++)
        n = n * 10 + a[i];
    cout << n << endl;
    return 0;

}