Я новичок в C, поэтому я попытался сделать программу z-funtion, но в результате компиляции после ввода любой входной информации у меня есть «Обработанный результат 139 (0x8B)) вина Сегментация»C - Возвращенный процесс 139 (0x8B) Ошибка сегментации
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
char s[10001];
int main(void)
{
fgets(s, 10001,stdin);
int mas[strlen(s)];
int i, k = 0, help = 0, len = strlen(s);
for (i = 1; i < len; i++)
{
if (i <= help)
{
printf(" i = %d,help = %d ", i,help);
mas[i] = fmin(mas[i - k], help - i + 1);
}
while (i + mas[i] < len)
{
if (s[i + mas[i]] == s[mas[i]])
{
mas[i]++;
}
else
{
break;
}
}
if (mas[i] > 0 && i + mas[i] - 1 > help)
{
k = i;
help = i + mas[i] - 1;
}
printf("%d",mas[i]);
}
return 0;
}
Что вы вводите? –
'mas' не инициализируется. – BLUEPIXY
aaaaa или ababa - мой стандартный ввод –