首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

哪哪哪哪哪错了、为什么oj下就是通不过

2013-03-20 
哪哪哪哪哪错了、为什么oj上就是通不过Description 给定一个由若干单词构成的英文句子,单词与单词之间用空

哪哪哪哪哪错了、为什么oj上就是通不过
Description 

给定一个由若干单词构成的英文句子,单词与单词之间用空格分隔。每个单词只包含小写的英文字母(a~z)。一个句子中的单词个数最多不超过100个,而每个单词中包含字母的个数不超过30个。

请找出在句子中出现频率最高的字母,并输出该字母出现的频率(精确到小数点后2位)。

Input 

输入一行,表示一个句子。

Output 

在一行中输出出现频率最高的字母,以及该字母出现的频率(精确到小数点后2位),两者之间用一个空格分隔。如果存在多个字母满足要求,则按照字典顺序做升序排序,输出最小的字母。

Sample Input 

enjoy the acm icpc programming contest

Sample Output 

c 0.12




#include<stdio.h>
#include<string.h>
int main()
{
int len,j,i,sum=0,count=0,max;
char a[3000];
char b[26]={'a','b','c','d','e','f','g','h','i','j','k','l','m',
            'n','o','p','q','r','s','t','u','v','w','l','y','z'};
char d[26];
char c[26]={0};
gets(a);
len=strlen(a);
for(i=0;i<26;i++)
d[i]=i;
for(i=0;i<len;i++)
{
if(a[i]==' ')
sum++;
}
for(i=0;i<len;i++)
for(j=0;j<26;j++)
{
if(a[i]==b[j])
c[j]++;
}
for(i=25;i>=0;i--)
{
if(c[i]>=c[25])
{
c[25]=c[i];
max=i;
}
}
printf("%c %.2f\n",b[max],c[25]*1.0/(len-sum));
return 0;
 
}

c
[解决办法]
char c[26]={0};
你确定一个字母最多出现不超过127次?

热点排行