问题标题: 酷町堂:3969

0
0
已解决
高子健
高子健
新手天翼
新手天翼

如何输出2次X

去吧代码

#include<iostream>
#include<string>
using namespace std;
int a[10010];
int main()
{
    string s;
    int n;
    cin>>n;
    cin>>s;
    for(int i=0;i<s.size();i++)
    {
        a[s[i]]++;
    }
      for(int i='A';i<='Z';i++)
    {
            if(a[i]!=0)
                cout<<char(i)<<a[i]<<endl;
    }  for(int i='a';i<='z';i++)
    {
        if(a[i]!=0)
        {
                cout<<char(i)<<a[i]<<endl;
        }
    }

    return 0;
}

不要完整代码

只求大佬指点

高子健在2020-03-14 16:30:44追加了内容

https://judge.codingtang.com/problem/3969/

高子健在2020-03-14 16:47:34追加了内容

还是不对

#include<iostream>
#include<string>
using namespace std;
int a[10010];
int main()
{
    string s;
    int n;
    cin>>n;
    cin>>s;
    for(int i=0;i<s.size();i++)
    {
        a[(int)s[i]]++;
    }
     for(int i=0;i<s.size();i++)
    {
      for(int i='A';i<='Z';i++)
    {
            if(a[i]!=0)
                cout<<char(i)<<a[i]<<endl;
    }  for(int i='a';i<='z';i++)
    {
        if(a[i]!=0)
        {
                cout<<char(i)<<a[i]<<endl;
        }
    }
}
    return 0;
}

只会输出

X2
Y1
Z1
a2
b2
c2


0
已采纳
朱子尘
朱子尘
初级光能
初级光能

用这个代码改。

这道题要输入n吗???

在“ if(a[i]!=0)”后面加上大括号

因为没有加所以出现了你这输出情况

 

0
张岳恒
张岳恒
资深光能
资深光能

这题还好

你的错误:首先是a[强转为int型的s[i]]++

循环条件错了,外1--140(不确定);内1--a[i]

先在内循环判断,a[i]!=0;而且char i是字母

输出强转char的i

再在外循环判断,条件同上

在里面输出次数a[i]和换行

张岳恒在2020-03-14 16:47:59追加了内容

简单来说 就是把第一个循环加加里的s[i]转成阿斯克码值++

遍历桶数组

内循环写a[i]是否为0&&是否为字母

是就输出强转后的i

跳出内

来到外

输出次数a[i]

无敌的endl

张岳恒在2020-03-14 16:49:19追加了内容

不用三重,循环条件双重遍历桶数组

0
龙舟
龙舟
高级光能
高级光能

在输出前加一句

for(int j=1;j<=a[i];j++)

即可

0
龙舟
龙舟
高级光能
高级光能

s用getline输入,a[(int)s[i]]++;改成a[s[i]]++;第二个for(int i=0;i<s.size();i++)去掉就行了,你试一下,不行再问

0
高子健
高子健
新手天翼
新手天翼

#include<iostream>
#include<string>
using namespace std;
int a[10010];
int main()
{
    string s;
    int n;
    cin>>n;
    cin>>s;
    for(int i=0;i<s.size();i++)
    {
        a[s[i]]++;
    }
      for(int i='A';i<='Z';i++)
    {
            if(a[i]!=0)
                cout<<char(i)<<a[i]<<endl;
    }  for(int i='a';i<='z';i++)
    {
        if(a[i]!=0)
        {
                cout<<char(i)<<a[i]<<endl;
        }
      
  } 

     return 0;
}

@龙舟 

只会输出X2
Y1
Z1
a2
b2
c2

0
龙舟
龙舟
高级光能
高级光能

不是跟你说输出前加一个

for(int j=1;j<=a[i];j++)

吗?

0
龙舟
龙舟
高级光能
高级光能

我知道了

    int n;
    cin>>n;去掉

 for(int i=0;i<s.size();i++)
    {
        a[s[i]]++;
    }加上if((s[i]>='A'&&s[i]<='Z')||(s[i]>='a'&&s[i]<='z'))

后面两个循环合在一起

for(int i=65;i<=122;i++)

里面

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

分开输出,不然两个都会输出两遍

ac

0
高子健
高子健
新手天翼
新手天翼

#include<iostream>
#include<string>
using namespace std;
int a[10010];
int main()
{
    string s;
    int n;
    cin>>n;
    cin>>s;
    for(int i=0;i<s.size();i++)
    {
        a[s[i]]++;
    }
      for(int i='A';i<='Z';i++)
    {
            if(a[i]!=0)
            for(int j=1;j<=a[i];j++)
                cout<<char(i);
           cout<<a[i]<<endl;      
    }
    for(int i='a';i<='z';i++)
    {
        if(a[i]!=0)
        for(int j=1;j<=a[i];j++)
        {
                cout<<char(i);
        }
      cout<<a[i]<<endl;
  } 

     return 0;
}

还是不对

有正确答案

但是会有

0

0

0

0

0

0

0

.......

XX2
Y1
Z1
aa2
bb2
cc2

0

0

0

0

0

0

0

.........

0
高子健
高子健
新手天翼
新手天翼

@龙舟 

我信你个鬼

3969   字符排序与计数
Wrong Answer:0分
高子健的测评结果:
测试点#1   测评结果 : Wrong Answer 时间 : 0ms    偷看一下数据
测试点#2   测评结果 : Wrong Answer 时间 : 0ms    偷看一下数据
测试点#3   测评结果 : Wrong Answer 时间 : 0ms    偷看一下数据
测试点#4   测评结果 : Wrong Answer 时间 : 0ms    偷看一下数据
测试点#5   测评结果 : Wrong Answer 时间 : 0ms    偷看一下数据
测试点#6   测评结果 : Time Limit Exceeded  时间 : 2000ms 偷看一下数据
测试点#7   测评结果 : Time Limit Exceeded  时间 : 1984ms 偷看一下数据
测试点#8   测评结果 : Time Limit Exceeded  时间 : 1992ms 偷看一下数据
测试点#9   测评结果 : Time Limit Exceeded  时间 : 2016ms 偷看一下数据
测试点#10  测评结果 : Time Limit Exceeded  时间 : 1996ms 偷看一下数据
我的提交(cpp):

#include<iostream>
#include<string>
using namespace std;
int a[10010];
int main()
{
    string s;
  int n;
cin>>s;
 for(int i=0;i<s.size();i++)
    {
        a[s[i]]++;

    if((s[i]>='A'&&s[i]<='Z')||(s[i]>='a'&&s[i]<='z'))

    for(int i=65;i<=122;i++)
    if(a[i])
    {
        for(int j=1;j<=a[i];j++)
        cout<<(char)i;
        cout<<a[i]<<endl;
   }
}
     return 0;
}

 

0
王鑫烨
王鑫烨
中级光能
中级光能

大家不要回答,这是作业!

我要回答