Вы пробовали пройти через этот код в отладчике?Я думаю, это сделало бы намного более ясным, что ваша программа не выполняет то, что вы думаете.
Одна потенциальная проблема заключается в том, что код, следующий за блоком if(task==2) { ... } else { ... }
в функции fix
, никогда не будетбыть казненным.И в случаях if
, и в else
содержатся return
статистики, поэтому выполнение никогда не дойдет до этого кода.
Кроме того, ваш цикл for(i=0;(s[i]=getchar())!='\n';i++);
в main
не защищен от записи послеконец массива s
.Эта строка кода, по сути, такая же, как стандартная библиотечная функция gets
, которая имеет ту же проблему.
Какой компилятор вы используете?Какие параметры компилятора вы используете?