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
0