Частота слов с количеством букв (только basi c l oop) - PullRequest
0 голосов
/ 29 мая 2020

Я хочу написать C программу для печати длины слов и их частоты по количеству букв с использованием основных методов c циклов. Я мог бы получить работу с длиной слова, но я застрял с частотой (пример: 2, а не 3, судить 5 a 1 книга 4 (решил это))

  • есть # слова с 1 буквой
  • есть # слова из 2 букв

et c ...

#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]!='\0'){ 
              b++;  
          }   
    printf("%s %d ", word, b);
    b = 0;
}

return 0;  
}

1 Ответ

1 голос
/ 29 мая 2020

Ваш вопрос не совсем ясен. Но насколько я понял, вы также хотели напечатать, сколько раз ( частота ) слово длиной ' l ' вводится пользователем. Итак, я отвечу, что:

Вы можете просто сохранить длину слова в массиве, вводимом пользователем. После того, как все входные данные будут прочитаны, вы можете просто напечатать частоту каждой длины слова из сохраненного массива

Обратитесь к следующему коду, чтобы понять, что я имел в виду:

#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]!='\0'){ 
              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;  
}

Я надеюсь, что это решит ваш вопрос!

...