注册 登录
编程论坛 C语言论坛

想请教各位大佬问一个关于统计单词中字母出现次数的问题

Emmaer123 发布于 2019-09-20 22:59, 2661 次点击
统计一个单词中出现次数最多的字母,为啥我的程序输出0?
程序代码:
#include <stdio.h>
#include <string.h>
int main()
{
    char c[26]={0};char b[100];int len=strlen(b);int max,min;
    scanf("%s",b);
    for(int i=1;i++;i<=26)
    {
        for(int j=1;j++;j<=len)           
        if(i==b[j]-'a')   c[i]++;
    }
    for(int i=0;i++;i<26)
     {
         max=min=0;
         if(c[i]>max)   max=c[i];
        if(c[i<min])   min=c[i];
     }
     printf("%d",max);
     return 0;

 }

7 回复
#2
zbjzbj2019-09-20 23:07
for(i=1;i< ;i++)

#3
Emmaer1232019-09-20 23:24
回复 2楼 zbjzbj
大佬,改成这样还是输出0,想不出到底哪里出了问题
#include <stdio.h>
#include <string.h>

int main()
{
    char c[26]={0};char b[100];int len=strlen(b);int max,min;
    scanf("%s",b);
    for(int i=0;i<26;i++)
    {
        for(int j=0;j<len;j++)
        if(i==b[j]-'a')   c[i]++;
    }
    for(int i=0;i++;i<26)
     {
         max=min=0;
         if(c[i]>max)   max=c[i];
        if(c[i<min])   min=c[i];
     }
     printf("%d",max);
     return 0;
 }
#4
zbjzbj2019-09-21 00:16
#include <stdio.h>
#include <string.h>

int main()
{
    int c[26]= {0};
    char b[100];
    int len,i;
    int max=0;
    scanf("%s",b);
    len=strlen(b);

    for(int j=0; j<len; j++)
        {
            i=b[j]-'a';
            c[i]++;
        }

    for(int i=0; i<26; i++)
        {
            if(c[i]>max)   max=c[i];
        }
    printf("%d",max);
    return 0;
}
#5
c小白23332019-09-21 11:10
回复 3楼 Emmaer123
4楼正解
int len = strlen(b);
这个要放在
scanf("%s", b);
的下面才行
不对b赋值 len的值一直为0
自然你的结果也就是0了
#6
Emmaer1232019-09-21 14:30
回复 4楼 zbjzbj
谢谢大佬指点
#7
自学的数学2019-09-21 14:30
程序代码:
#include <stdio.h>
#include <ctype.h>
int main(void)
{
int a[26]={0};
int i;
char c;
while ((c=getchar())!='\n')
if (isalpha(c)) a[tolower(c)-'a']++;
for (i = 0; i<26; i++) {
printf("%c\t:\t%d\n",'a'+i,a[i]);
}
return 0;
}
#8
Emmaer1232019-09-21 14:31
回复 5楼 c小白2333
确实是这个问题,感谢
1