问题标题: 酷町堂: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++){
        b[a[i]]++;
    }
    for(int i=1;i<=500000;i++){
        for(int j=b[i];j>=0;j++)
        if((char)i>='0'&&(char)i<='0'){
            cout<<char(i);
        }
    }
    return 0;
}

哪错了??


0
已采纳
龙舟
龙舟
高级光能
高级光能

你把

if((char)i>='0'&&(char)i<='0')放在第一个循环里

第二个循环改成

循环(定义 i=57;i>=48;i--)//遍历数字
    {
        循环(定义 j=1;j<=a[i];j++)//次数
            输出i-48和空格
    }

老师是这样写的,ac

龙舟在2020-03-15 20:57:11追加了内容

我的a数组是桶

0
龙舟
龙舟
高级光能
高级光能
(char)i>='0'&&(char)i<='0'错了吧,是到9
0
周明轩
周明轩
资深光能
资深光能
(char)i>='0'&&(char)i<='0'错了吧,是到9
0
赵泰来
赵泰来
高级光能
高级光能

@龙舟 还不对…………​​

0
赵泰来
赵泰来
高级光能
高级光能

@龙舟 还不对

错误代码给过了

0
0
包涵宇
包涵宇
中级天翼
中级天翼

童鞋,这个问题还没看到忙???

 

for(int j=b[i];j>=0;j++)

这是死循环!!!

应该为:

 

for(int j=b[i];j>=1;j--)

 

for(int j=1;j<=b[i];j++)
我要回答