Я думаю, что проблема, которую вы видите, на самом деле происходит из основного метода.
Выполненный вами вызов scanf () ищет только «% d», а не «% d \ n».
Таким образом, вы вводите число 2, чтобы попробовать тест 2, и должны нажать Enter, прежде чем это значение попадет в программу. Поскольку scanf не пытается сопоставить его, эта новая строка остается частью входного потока и, таким образом, передается непосредственно в gets () в следующей функции.
Поэтому, если вы измените строку в scanf внутри главной функции, вы должны увидеть, как код начинает работать.
Теперь о другой заметке (и я знаю, что вы просили нас не делать этого, но ...), вы действительно не должны использовать get (). Чтобы переключиться на fgets, просто замените get (temp) на fgets (temp, 99, stdin). Это 99 - это любое число, которое меньше размера временного буфера, который вы создали, который в этом случае имеет размер 100.