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