单词频率与字母数(仅限基本循环)

Words frequency with number of letters (basic loop only)

我想编写 C 程序以使用基本循环技术按字母数字打印单词长度及其出现频率。我可以得到字长的工作,但我坚持频率 (例子:Do 2 not 3 judge 5 a 1 book 4(已经解决了这个))

等...

#include <stdio.h>
int main(void) {

char word[30];
int i = 0,b=0,c=0,j=0,d=0;
printf("Please enter a word: ");

for (i = 0; i < 30 ; i++){
    scanf("%s", word);           
          while (word[b]!='[=10=]'){ 
              b++;  
          }   
    printf("%s %d ", word, b);
    b = 0;
}

return 0;  
}

你的问题不是很清楚。但是据我了解,您还想打印用户输入长度为 'l' 的次数 (frequency) .所以我会回答:

您可以 将单词的长度 存储在用户输入的数组中。读取所有输入后,您只需打印存储数组中每个字长的频率

参考下面的代码来理解我的意思:

#include <stdio.h>
int main(void) {

char word[30];
int i = 0,b=0,c=0,j=0,d=0;
int word_length_freq[30]={0};       //an array which will store the frequency of word length(all initialized to 0)
                                   //eg. if word is "hello" it will increase count of word_length_freq[5] by 1
printf("Please enter a word: ");

for (i = 0; i < 3 ; i++){
    scanf("%s", word);           
          while (word[b]!='[=10=]'){ 
              b++;  
          }   
    word_length_freq[b]++;
    printf("%s %d ", word, b);    
    b = 0;
}

for(int i=1;i<30;i++){          //This will print the frequency of all words from length 1 to 30
    printf("There are %d words of length %d\n",word_length_freq[i],i);
}

return 0;  
}

希望这能解决您的问题!