当前位置: 代码迷 >> C语言 >> 希望高手们动动手帮帮小妹。。。。
  详细解决方案

希望高手们动动手帮帮小妹。。。。

热度:400   发布时间:2008-06-04 23:02:03.0
希望高手们动动手帮帮小妹。。。。
从键盘输入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  include  频率  

----------------解决方案--------------------------------------------------------
你不想帮忙也不用说这么多废话吧?
----------------解决方案--------------------------------------------------------
我只是想把问题说得清楚点。。。。才修改了一下再发了一贴
----------------解决方案--------------------------------------------------------
程序代码:

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);      
}

  
}



这个怎样?
----------------解决方案--------------------------------------------------------
  相关解决方案