🎉️ 程序设计n个一位数能够组成的最小数


题目描述
请问n个一位数能够组成的最小的n位整数是多少。

比如,n=333个整数为319,那么组成的最小整数是139。

比如,n=44个整数为2806,那么组成的最小整数是2068。

输入格式
第一行为一个整数n (n<=100)

第二行为n个一位数

输出格式
一行,包含一个组成的最小整数。

输入样例
4
7 3 4 4
输出样例
3447
下面是我的错误代码。

#include <bits/stdc++.h>
using namespace std;

const int MAXN = 10010;
string strs[MAXN];

bool cmp(const string& a, const string& b)
{
    return a+b < b+a;
}

int main()
{
    ios::sync_with_stdio(false);
    int n;
    cin >> n;
    for(int i = 0; i < n; ++i)
        cin >> strs[i];
    sort(strs,strs+n,cmp);
    int len = 0;
    for(int i = 0; i < n; ++i)
    {
        for(int j = 0; j < strs[i].length(); ++j)
        {
            len++;
            putchar(strs[i][j]);
            if(len%1000 == 0)
                putchar('\n');
        }
    }
    return 0;
}

#include<stdio.h> 


int main()
{
    int n;
    int num[100];
    int temp;
    
    scanf("%d",&n);
    
    for(int i=0;i<n;++i)
        scanf("%d",&num[i]);
    
    for(int i=0;i<n;++i)
        for(int j=i+1;j<n;++j){
            if(num[i]>num[j]){
                temp = num[j];
                num[j] = num[i];
                num[i] = temp;
            }
        }
    
    for(int i=0;i<n;++i)
        printf("%d",num[i]);
        
    return 0;
}