问题标题: 酷町堂:4428

0
0
已解决
武建豪
武建豪
中级天翼
中级天翼

4428   数字串排序输出经验值:0

题目描述 Description

有一个数字串,全部由数字0~9组成。现在要将这个数字串中的数字从小到大重新排序,然后全部输出,每两个数字中间用空格隔开。

输入描述 Input Description

输入一个数字串,位数不超过100位

输出描述 Output Description

将数字串中的数字字符从小到大排序输出,每两个字符之间用空格隔开。

样例输入 Sample Input

981241014

样例输出 Sample Output

0 1 1 1 2 4 4 8 9

武建豪在2021-03-27 20:00:11追加了内容

@曹博扬 @李瑞曦 @侯平仄 @邓涵睿@程祺然 

武建豪在2021-03-27 20:14:09追加了内容

#include<iostream>
#include<fstream>
#include<algorithm>
#include<cmath>
#include<cstdio>
#include<cstring>
#include<string>
#include<iomanip>
#include<cstdlib>
using namespace std;
int a[2000],b;
string s;
int main()
{
    cin>>s;
    for(int i=1;i<s.size();i++){
        cin>>a[i];
    }
    for(int i=0;i<s.size();i++){
        b[s[i]-'0']++;
        for(int i=0;i<=b[i];i++){
            for(int j=1;j<=a[i];j++){
                cout<<i<<" ";
            }
        }
    }
    return 0;
}

改得一塌糊涂。。。


0
已采纳
李显晨
李显晨
中级启示者
中级启示者
    int a[10];
    string s;
	getline(cin,s);
	for(int i=0;i<s.size();i++){
		a[s[i]-'0']++;
	}
	for(int i=0;i<=9;i++){
		for(int j=1;j<=a[i];j++){
			cout<<i<<" ";
		}
	}

 

李显晨在2021-03-27 20:27:40追加了内容

@武建豪 

1
李显晨
李显晨
中级启示者
中级启示者

这道题要用桶。

存数+输出:

for(int i=0;i<s.size();i++) b[s[i]-'0']++;
for(int i=0;i<=9;i++){
    for(int j=1;j<=a[i];j++){
        cout<<i<<" ";
    }
}

输入+定义自己写

我要回答