Когда scanf("%d",&n);
выполняется, он использует цифру из ввода, но оставляет следующий символ.Этот персонаж, скорее всего, символ новой строки.Затем, когда gets
выполняется, он читает этот символ новой строки.Таким образом, он помещает это в sr[0]
как завершенную строку - просто новую строку и никаких других символов.Ваш цикл не выполняется n-1
раза;он выполняется n
раз, но первая строка пуста.
Самый простой способ исправить это - изменить scanf("%d",&n)
на scanf("%d ",&n);
.Пробел после %d
указывает scanf
использовать символы пробела, что приведет к удалению символа новой строки из ввода.
Однако это также удалит пробелы в начале следующей строки.Если вы не хотите этого, оставьте scanf
как есть, но вставьте код для чтения (и игнорирования) символов, пока он не прочитает символ новой строки.