希望高手们动动手帮帮小妹。。。。
从键盘输入300个字符,统计其中各字母出现的次数,问号,感叹号,逗号,句号出现的次数,哪个字母出现的频率最高
各位大哥大姐帮帮忙....我只会下面这一小部分,请帮忙添加修改一下,我真的急需。。。。
#include <stdio.h>
#include <string.h>
int main()
{
int i,a[26]={0};
char str[100];
gets(str);
for (i=0;i<strlen(str);i++)
{
if(str[i]>='a'&&str[i]<'z')
{
a[str[i]-32-'A']++;
}
else
{
a[str[i]-'A']++;
}
}
for (i=0;i<26;i++)
{
printf("%c = %d\n",'A'+i,a[i]);
}
return(0);
}
----------------解决方案--------------------------------------------------------
你不想帮忙也不用说这么多废话吧?
----------------解决方案--------------------------------------------------------
我只是想把问题说得清楚点。。。。才修改了一下再发了一贴
----------------解决方案--------------------------------------------------------
程序代码:
int main()
{
int str[256]={0},Maxi=0,temp;
while((temp=getchar())!='\n')
if(str[Maxi]<++str[temp])
Maxi=temp;
printf("最多的是%c,出现次数%d\n",Maxi,str[Maxi]);
return 0;
}
试试这个
[[it] 本帖最后由 yxwsbobo 于 2008-6-5 00:06 编辑 [/it]]
----------------解决方案--------------------------------------------------------
#include "stdio.h"
#include "string.h"
int main()
{ int i,temp,a[26]={0};
int max=0;
char str[300];
gets(str);
for (i=0;i<strlen(str);i++)
{
if(str[i]>='a'&&str[i]<'z')
{
a[str[i]-32-'A']++;
}
else
{
a[str[i]-'A']++;
}
}
for(i=0;i<26;i++)
{
printf("%c=%d\n",'A'+i,a[i]);
}
for(i=0;i<26;i++)
{
if(a[max]<a[i])
max=i;
}
printf("最大频率字母为:%c\n",'A'+max);
printf("频率为:%d\n",a[max]);
return 1;
}
----------------解决方案--------------------------------------------------------
谢谢大哥帮忙,这代码非常好用!!!!
----------------解决方案--------------------------------------------------------
回复 6# wuyufeixue 的帖子
谢谢大哥哥!!! ----------------解决方案--------------------------------------------------------
回复 5# yxwsbobo 的帖子
谢谢大哥帮忙~~ ----------------解决方案--------------------------------------------------------
好啊,谢谢
----------------解决方案--------------------------------------------------------
// Note:Your choice is C++ IDE
#include "stdio.h"
void main()
{
int i,j,da[26]={0},xiao[26]={0},wenhao,gantanhao,douhao,juhao;
char daxie[26],xiaoxie[26],word[5];//word为输入字符数组
daxie[0]='A',xiaoxie[0]='a';
for(i=0;i<26;i++)
{
daxie[i]=daxie[0]+i;
xiaoxie[i]=xiaoxie[0]+i;
}
for(j=0;j<5;j++)
scanf("%c",word[j]);
for(j=0;j<5;j++)
{
for(i=0;i<26;i++)
{
if(word[j]==daxie[i])
da[i]++;
else if(word[j]==xiaoxie[i])
xiao[i]++;
}
if(word[j]==34)
wenhao++;
if(word[j]==33)
gantanhao++;
if(word[j]==44)
douhao++;
if(word[j]==63)
juhao++;
}
for(i=0;i<26;i++)
{ printf("%c出现%d次 %c出现%d次",daxie[i],da[i],xiaoxie[i],xiao[i]);
printf("问号出现%d次 感叹号出现%d次 逗号出现%d次 句号出现%d次",wenhao,gantanhao,douhao,juhao);
}
}
这个怎样?
----------------解决方案--------------------------------------------------------