Also mache ich ein Programm, das ein horizontales Histogramm der Länge der Wörter in seiner Eingabe drucken soll. Also änderte ich die while in wenn es jetzt mehr als 1 Eingabe akzeptiert. Aber was stimmt diesmal nicht? Es wird das Diagramm nicht gedruckt.Horizontales Histogramm akzeptiert keine Eingabe nach der ersten Eingabe (bearbeitet, wird nicht gedruckt)
/*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');
}
}
So funktioniert es jetzt? Weil mir die offensichtlichen Ergebnisse ausgehen. –
Nein .. nachdem ich eingegeben habe dann Eingabe ctrl + z, es sagt nur drücken Sie eine beliebige Taste, um fortzufahren .. dann schließt. – latenightcode
Wenn ich deinen Code in deinem 3. Teil habe. Es druckt einfach - in neuer Zeile 30 mal. anstelle von ------- (mit nicht 30, sondern nur die Länge des Wortes) @ r_ahlskog – latenightcode