编译成功后,输入没完成就自动退出?

编译没有显示有错误,但是在命令窗口没有输入完成,命令窗口就自动闪退

#include<stdio.h>

typedef struct student{
    int num;
    char name[20];
    char sex;
    int age;

}stu;
void get_stu(stu stu1[],int len);
void put_stu(stu stu1[],int len);

int main()
{
    int n;
    stu stu1[20];

    scanf("%d",&n);
    while(n<=20)
        get_stu(stu1,n);
    put_stu(stu1,n);    



    return 0;
}

void get_stu(stu stu1[],int len)
{
    for(int i=0;i<len;i++){
            scanf("%d",&stu1[i].num);
            scanf("%s",stu1[i].name);
            scanf("%s",stu1[i].sex);
            scanf("%d",&stu1[i].age);
        }
}

void put_stu(stu stu1[],int len)
{
    for(int i=0;i<len;i++)
    {
        printf("%d",stu1[i].num);
        printf("%s",stu1[i].name);
        printf("%s",stu1[i].sex);
        printf("%d",stu1[i].age);
    }
}
while(n<=20)
    get_stu(stu1,n);
这么写会死循环

应该是

if(n<=20) { 
put_stu(stu1,n);  
get_stu(stu1,n);
}