2
을 C는 - 인쇄 - 그 input.It 단어의 길이의 막대 그래프를 인쇄하는 프로그램을 작성이 K & R에서 질문입니다 히스토그램
은 수평 막대가있는 막대 그래프를 그릴 간단합니다; 그러나 수직 방향은보다 어렵습니다.
자습서 소개이기 때문에 라이브러리 함수를 사용하지 않아도됩니다!
나는 그렇게 할 수있는 다음과 같은 프로그램을 작성했습니다하지만 몇 가지 버그를 가지고있다 - 단어 사이에 하나 이상의 공백 문자가
1) 경우 예상대로 프로그램이 작동하지 않습니다.
2) 'k'의 최대 값을 어떻게 알 수 있습니까? 입력에 단어가 몇 개 있는지 알 수있는 방법은 무엇입니까? 여기
코드입니다 : -#include<stdio.h>
#include<ctype.h>
#include<string.h>
#include<stdlib.h>
#define MAX_WORDS 100
int main(void)
{
int c, i=0, k=1, ch[MAX_WORDS] = {0};
printf("enter the words:-\n");
do
{
while((c=getchar())!=EOF)
{
if(c=='\n' || c==' ' || c=='\t')
break;
else
ch[i]++;
}
i++;
}
while(i<MAX_WORDS);
do
{
printf("%3d|",k);
for(int j=1;j<=ch[k];j++)
printf("%c",'*');
printf("\n");
k++;
}
while(k<10);
}
도대체 누가 이것을 떨어 뜨렸습니까? 적어도 그/그녀는 코멘트를 남겨 두어야했다. – haccks
+1 그냥 downvote 카운터. 매력처럼 작동합니다. – syb0rg
프로그램이 맞지만 프로그램이 K & R 처형 요건을 충족시키지 못한다고 생각합니다. 길이의 빈도를 세는 것으로 가정합니다. 따라서 'a a a a'와 같은 5 개의 단어가있는 경우 1 : 5로 돌아가거나 'ab abc'와 같은 단어가 3 개있는 경우 1 : 1 2 : 1 3 : 1로 돌아옵니다. 따라서 길이 : 주파수. – runners3431