问题标题: 酷町堂:3811

0
0
已解决
李玉帆
李玉帆
新手守护
新手守护
#include<bits/stdc++.h>
using namespace std;
int a[10];
int main()
{
    int n,t;
    cin>>n;
    for(int i=1;i<=n;i++){
    cin>>t;
    a[t]++;
    }
    if(a[1]==0&&a[2]==0&&a[3]==0&&a[4]==0&&a[5]==0&&a[6]==0&&a[7]==0&&a[8]==0&&a[9]==0)
    return 0;
    for(int i=1;i<=9;i++){
    for(int j=1;j<=a[i];j++){
    if(i<=1)
    cout<<i;
    break;
    }
    }
    if(a[0]>0){
        for(int i=0;i<=9;i++){
            for(int j=1;j<=a[i];j++){
                if(i==0){
                cout<<i;  
                }
            }
        }
    }
    if(a[1]>0)
    for(int i=1;i<=9;i++){
        for(int j=1;j<=a[i]-1;j++){
            if(i==1)
            cout<<i;
        }
    }
    for(int i=2;i<=9;i++){
        for(int j=1;j<=a[i];j++){
            cout<<i;
        }
    }
    return 0;   
} 

90


1
已采纳
朱子尘
朱子尘
初级光能
初级光能

你写的很麻烦。只用两个循环就能实现。

第一个是用来判断第一个最小的数,需要标志位,提示:最小的数不一定是1,i=?;i<=?自己思考一下

第二个是从小到大输出(没空格),你的输出有问题

这是思路,代码自己想

0
张海棠
张海棠
中级守护
中级守护
    循环(int i=1;i<=n;i++){
        输入>>b;
        a[b]++; 
    }
    循环(int i=0;i<=9;i++){
        如果(i!=0&&a[i]!=0){
            k=i;
            输出<<i;
            break;
        }
    }
    循环(int i=0;i<=9;i++){
        如果(i==k){
            循环(int j=1;j<a[i];j++){
                 输出<<i;
            }
        }
        否则{
            循环(int j=1;j<=a[i];j++){
                输出<<i;
            }
        }
    }

望采纳!!!!

我要回答