某一天,26个小写的英文字母争论了起来,它们都想当老大,闹得不可开交。这时逗比的小甲想到了一个好办法使它们平息了下来,规则是这样的:读入一行仅由小写英文字母组成的字符串,统计这26个小写英文字母在这串字符中出现的次数,谁出现的此数多谁就是老大。另外,没有出现在这串字符中的小写英文字母就只能甘拜下风了。虽然这种办法对有些字母有些不公平,但是大家还是硬着头皮接受了。那么好了,现在问题来了,聪明的你就编道程序帮它们解决吧。
标签:iostream namespace 编程 c++ 博客
某一天,26个小写的英文字母争论了起来,它们都想当老大,闹得不可开交。这时逗比的小甲想到了一个好办法使它们平息了下来,规则是这样的:读入一行仅由小写英文字母组成的字符串,统计这26个小写英文字母在这串字符中出现的次数,谁出现的此数多谁就是老大。另外,没有出现在这串字符中的小写英文字母就只能甘拜下风了。虽然这种办法对有些字母有些不公平,但是大家还是硬着头皮接受了。那么好了,现在问题来了,聪明的你就编道程序帮它们解决吧。
一行仅由小写英文字母组成的字符串,不包含其他的各类字符。
输出出现次数最多的字母和次数,如果出现次数相同则输出ASCII码大的
goodgoodstudydaydayup
d:5
代码如下:
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
char str[100];
int num[100],i,j,k=0,d;
d=0;
gets(str);
for (i=0; str[i]!='\0'; i++)
{
for (j=0; str[j]!='\0'; j++)
{
if (str[j]==str[i])
k++;
}
num[i]=k;
k=0;
}
for (i=0;str[i]!='\0';i++)
{
if (num[0]<num[i])
{
num[0]=num[i];
d=i;
}
}
cout<<str[d]<<":"<<num[d];
return 0;
}
开始没读懂题目意思,脑筋也没有转过弯来,傻乎乎的将26个字母用switch语句列出来然后num[26]统计字符个数,用另外一个变量输入字符,最后输出的时候,出题人也不厚道,第四个字母刚好是d,对应的num[3]刚好是第四位且最大,然后就...wrong answer了。。。再度冥思苦想,最后还是靠学长的提示下做了出来。
标签:iostream namespace 编程 c++ 博客
原文地址:http://blog.csdn.net/liuchang54/article/details/42428457