Хорошо, поэтому я хотел задать этот вопрос: «Напишите программу для печати гистограммы длин слов на входе» (упражнение 1-13 из книги C-программирования Брайана и Денниса Ричи). В этом коде я печатаю только количество слов разной длины (это моя первая попытка).
Эта программа компилируется нормально, но при запуске кода я получаю эту ошибку Segmentation fault (дамп кода). Что не так с этим кодом?
#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]);
}
read
для своей собственной функции. В системе уже есть функция с таким названием. - person Some programmer dude   schedule 19.08.2012print k
, чтобы узнать, какое значение имеет переменнаяk
. - person Some programmer dude   schedule 19.08.2012