2017-05-25 4 views
0

私はこのようなものを作りました。このプログラムは、ユーザーから5ワードを取ってから、その長さを「ヒストグラム」として印刷する必要があります。問題は、どうすればいいのですか?長い話を短くするために、ループを作成する方法、まさにそれくらいword_length配列、および印刷ですべてのセルからint型「#」の兆候取るために:P配列からループ引数を取って、それらを印刷標識に変更する方法

char word_input[20]; 
int counter = 0; 
int word_lenght[5]; 

while(counter < 5) 
{ 
    printf("Please, write a word of your choice: "); 
    scanf("%20s", word_input); 
    word_lenght[counter] = strlen(word_input); 
    counter++; 

} 
printf("\n"); 
printf("Your histogram: \n"); 
for(int i = 0; i < counter; i++) 
{ 
    printf("%d.%d\n",i,word_lenght[i]); 
} 

またを、私はここにお願いしたかったのです。のdidn別の投稿を作成したかった。私はPrataの本をやっている(また、すべての運動をそこに入れながらgitを学ぶ)。 Cで始めるだけで十分ですか?私はこれを見ました:https://github.com/open-source-society/computer-science#core-applications、と私は、少なくともプログラミングに関するすべてのものを通過したい:P

+0

'%20s' - >'%19s' –

答えて

1

私はあなたにアイデアを提案し、確かに最高ではないが、それについて考え始める。

#define SIZE_ARRAY 5 

int main(void) 
{ 
    int word_length[SIZE_ARRAY] = {4, 2, 6, 3, 7}; 
    int max_value = 0; 

    for (int i = 0 ; i < SIZE_ARRAY ; ++i) 
    { 
     if (word_length[i] > max_value) 
      max_value = word_length[i]; 
    } 

    for (; max_value > 0 ; max_value--) 
    { 
     for (int j = 0 ; j < SIZE_ARRAY ; j++) 
     { 
      if (word_length[j] >= max_value) 
       putchar('#'); 
      else 
       putchar(' '); 
     } 
     putchar('\n'); 
    } 

    return (0); 
} 
関連する問題