私は入力の単語の長さの水平ヒストグラムを印刷するプログラムを作っています。だから、whileを1に変更したので、1つ以上の入力を受け入れるようになりました。しかし、今回は何が問題なのですか?グラフは印刷されません。水平ヒストグラムは最初の入力の後に入力を受け付けません(編集済み、印刷入力はありません)
右そこにあなたの問題です/*Write a program to print a histogram of the lengths of words in its input.
It is easy to draw the histogram with the bars horizontal*/
#include <stdio.h>
#define MAX 30
#define IN 1
#define OUT 0
int main()
{
int a,c,i,k,state,word[MAX];
a=0;
k=0;
state=OUT;
for(i=0;i<MAX;i++)
word[i]=0;
while((c=getchar())!=EOF)
{
if(c==' '||c=='\t'||c=='\n')
state=OUT;
else
state=IN;
if(state==IN)
a++;
if(state==OUT)
{
word[i]=a;
i++;
a=0;
}
}
/*This part is pissing me off, I don't know how to print X multiple times!*/
for(i=0;i<MAX;i++)
if(word[i]>0)
{
for(k=0;k<=word[i];k++)
putchar('-');
putchar('\n');
}
}
それでは今は動作していますか?私には明らかな発見がなくなっているからです。 –
いいえ..入力した後にCtrl + Zを入力した後、続行するには任意のキーを押してください。 – latenightcode
あなたのコードが3番目の部分にあれば。これは新しい行で30回だけ印刷します。 -------の代わりに-------(単語の長さは30ではなく)@r_ahlskog – latenightcode