求助
查看原帖
求助
1029412
RLFXRMSC楼主2023/7/3 20:58
#include <iostream>
#include <string>
#include <math.h>

int main()
{
    int n, a[30] = {0};//数量、数字
    int cmp[30] = {0};//比较用
    int m = 0;//最大位数
    std::cin >> n;
    for (int i = 0; i < n; i++)//输入数据 
    {
        std::cin >> a[i];
        std::string s = std::to_string(a[i]);
        int len = s.length();
        if (len >= m)//求最大位数
        {
            m = len;
        }
    }
    for (int i = 0; i < n; i++)//数字对齐
    {
        std::string s = std::to_string(a[i]);
        int len = s.length();
        cmp[i] = a[i] * pow(10, m - len);
    }
    for (int i = 0; i < n; i++)//冒泡排序
    {
        for (int j = i; j < n; j++)
        {
            if (cmp[j] < cmp[j + 1])
            {
                int r = cmp[j];
                cmp[j] = cmp[j + 1];
                cmp[j + 1] = r;
                r = a[j];//修改原排序
                a[j] = a[j + 1];
                a[j + 1] = r;
            }
        }
    }
    for (int i = 0; i < n; i++)
    {
        std::cout << a[i];
    }
    return 0;
}
2023/7/3 20:58
加载中...