0
#include <stdio.h>
#define IN 1
#define OUT 0
#define maxword 15

main()
{
int j,i,state,c,nc_word;
nc_word = 0;
int count [maxword];
for(i=0;i<=maxword;i++)
    count[i]=0;
state = OUT;

while((c=getchar())!= EOF)
{
    if( c == ' '|| c == '\t'||c == '\n')
    {
       if (state == IN){
        ++count[nc_word];
        nc_word = 0;
       }
       state = OUT;

    }
    else
    {
        state = IN;
        ++nc_word;
    }
 }
for(i=13 ; i>=1 ; --i)
 {
    printf("\n%d",i);
   for(j=1;j<=count[i];j++){
        printf(" *");
   }
 }
 }

このプログラムは、単語の文字数のヒストグラムを出力します。ただし、配列 count[] の最後の要素を -1 に設定します (私の場合、-1 は EOF 値です)。たとえば、入力に 14 文字の単語が 1 つある場合、count[14] は 1 のはずですが、機能していません。常に -1 に設定されています。

4

2 に答える 2

1

check your index once, it's printing garbage values. and in what space sir, your this statement exist ? i don't understand

++count[nc_word];
于 2013-11-08T13:51:16.010 に答える