gets()
читает строку, пока не будет найден символ новой строки .Поскольку во входном сигнале от scanf("%d",&n)
есть новая строка, когда рядом с ней вызывается функция gets()
, он будет читать эту новую строку и возвращаться, не читая дальше.Для решения этой проблемы вы можете использовать getchar();
после scanf("%d",&n);
См. Изменение ниже:
#include<string.h>
#include<stdio.h>
void main()
{
int n;
scanf("%d",&n);
getchar();
char s[50];
for(int i=0;i<n;i+=1)
{
gets(s);
puts(s);
}
}