C 数组循环错误

C Array Looping Error

我应该写一个简单的 C 程序来读取一个整数并循环 n 次来处理字符串,但是如果我使用 scanf 整数,第一个循环会自动传递一个空字符串,但是如果我使用循环工作正常的常数。有人请向我解释这是怎么回事。

#include <stdio.h>
#define MAX 80

int main(){
    char sentence[MAX];
    int n, i;
    scanf("%d", &n);
    for(i=0; i<3; i++){//it loops with empty string automatically if I replace 3 with n
        gets(sentence);
        printf("%s\n", sentence);
    }
}

试试这个代码

    #include<stdio.h>
    #include<conio.h>
    #define MAX 80
    void main()
    {
    char sentence[MAX];
    int n,i;
    clrscr();
    scanf("%d",&n);
    for(i=0;i<n;i++)
    scanf(" %99[^\n]",sentence);
    printf("\n%s\n",sentence);
    getch();

    }