问题标题: 酷町堂:3854 哪里错了?求解答

0
0
已解决
陈若时
陈若时
修练者
修练者
#include<iostream>
#include<string>
#include<ctime>
using namespace std;
string a[50005];
int main()
{   
    string w;
    cin>>w;
    for(int i=1;i<=w.size();i++)
    {
        if(w[i]<=9&&w[i]>=0)
        a[w]++;
    }

    for(int i=1;i<=50000;i++)
        for(int j=1;j<=a[i];j++)
            cout<<i<<'';
    return 0;
}

 


0
已采纳
曹志
曹志
资深守护
资深守护
if(w[i]>='0'&&w[i]<='9')
    a[w[i]-'0']++;

另外ctime没用,不要调用

 

数组和字符串一样,下标从0开始,可以把for(int i=1;i<=w.size();i++)改成for(int i=0;i<w.size();i++)

另外,w.size()不要放在for里,那样每循环一次,就要获取一次字符串的长度,会变慢

if里应该把数字外写上单引号,因为那是字符,而不是数

0
我要回答