问题标题: 酷町堂:3969 字符排序与计数 求大佬找错 不要代码

0
0
已解决
赵朗
赵朗
高级光能
高级光能
#include<iostream>
#include<string>
using namespace std;
int a[10010];
int main()
{
    string s;
    cin>>s;
    for(int i=0;i<s.size();i++)
    {
        a[s[i]]++;
    }
      for(int i='A';i<='Z';i++)
    {
            if(a[i]){
                cout<<char(i)<<a[i]<<endl;
            }   
    }  for(int i='a';i<='z';i++)
    {
        if(a[i])
        {
                cout<<char(i)<<a[i]<<endl;
        }
    }

    return 0;
}

 


0
已采纳
陈曦
陈曦
资深天翼
资深天翼
  • 题目思路如下:
  • 1、遍历字符串,创建桶数组。
  • 2、留下“非0”并是字母的字符(ASCII码)。
  • 3、输出上一步留下的字符(先从 ASCII 码强制类型转换成字符)。
  •  
  • 特别注意:遍历字符串要从 0 至 n-1。

你错在:

    1、 遍历字符串要 至 s.size()-1。

    2、第22行、15行a[i]和换行应在循环外写。

    3、第4行数组范围到10^6(1000000)。

0
0
缪鲲鹏
缪鲲鹏
新手光能
新手光能

字母出现了几次就要输出几次, 在第15行和第22行应该改成:

for(int j = 1; j <= a[i]; j ++) {
        cout << char(i);
{
        cout << a[i] << endl;

 

0
赵朗
赵朗
高级光能
高级光能

都是夜猫子吗 这么晚不睡觉

我要回答