わかりましたので、この質問をしたかったのです:「入力の単語の長さのヒストグラムを出力するプログラムを書いてください」(Brian と dennis Ritchie による本 C プログラミングの演習 1-13)。このコードでは、さまざまな単語の長さの集計のみを出力しています (最初の試みとして)。
このプログラムは正常にコンパイルされますが、コードの実行中にこのセグメンテーション違反 (コード ダンプ) エラーが発生します。このコードの何が問題になっていますか?
#include<stdio.h>
void read(char input[]);
void draw(int i[]);
main()
{
int i,k,l;
int len[16];
char input[100];
read(input);
i=k=l=0;
for(l=0;l<=15;l++)
{
len[l]=0;
}
while(input[i]!='/0')
{
if(input[i]!='\n'&&input[i]!='\t'&&input[i]!=' ')
{ k++;
i++;
}
else
{ len[k]=len[k]+1;
k=0;
i++;
}
}
draw(len);
return 0;
}
void read(char c[])
{
int i=0;
int a;
while((a=getchar())!=EOF)
{ c[i]=a;
i++;
}
c[i]='\0';
}
void draw(int len[])
{ int i=0;
printf("Length\tWords\n");
for(i=1;i<=15;i++)
printf("%6d\t%6d\n",i,len[i]);
}