问题标题: 酷町堂:3854

0
0
已解决
胡钰妍
胡钰妍
资深光能
资深光能

#include<iostream>

#include<string>

using namespace std;

int b[500000];

int main(){

int n;

string a;

cin>>a;

n=a.size();

for(int i=0;i<=n;i++){

if((char)i>='0'&&(char)i<='9'){

b[a[i]]++;

}

}

for(int i='9';i>='0';i--)

{

for(int j=1;j<=b[a[i]];j++)

cout<<(char)i<<" ";

}

return 0;

}

 

哪错了


0
已采纳
吴文光
吴文光
新手光能
新手光能

1.你第一个循环里的if应该这样写if(a[i]>='0'&&a[i]<='9')。你用强转转换的是i而不是a[i].

2.for(int j=1;j<=b[a[i]];j++)改成for(int j=1;j<=b[i];j++)

3.最后的输出应该是cout<<i-48<<" ";至于为什么错参见第一条。

 

0
吴文光
吴文光
新手光能
新手光能

想知道正确代码的话加一下我QQ我把我的有注释的代码发给你我QQ号:15008301

0
我要回答