求助:为何程序运行到print函数就停止工作?
											 程序代码:
程序代码:#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define NULL 0
#define length sizeof(struct student)
struct score
{
    float Chinese,Math,English;
};
struct student
{
    char Name[20];
    int Num;
    struct score Score;
    float Allscore;
    char Sex;
}stu[300],yuanshi[300],change;
int n=0;
void input();
void print();
void input()
{
    int i;
    for(i=n;;i++)
    {
        printf("请输入第%d位学生姓名,输入end停止输入\n",n+1);
        scanf("%s",&stu[i].Name);
        if(strcmp(stu[i].Name,"end")==0)
        {
            break;
        }
        printf("请输入该学生学号\n");
        scanf("%d",&stu[i].Num);
        getchar();
        printf("请输入该学生性别,男.m,女.w\n");
        scanf("%c",&stu[i].Sex);
        getchar();
        printf("请输入该学生语文,数学,英语考试成绩,用空格分开\n");
        scanf("%f%f%f",&stu[i].Score.Chinese,&stu[i].Score.Math,&stu[i].Score.English);
        stu[i].Allscore=stu[i].Score.Chinese+stu[i].Score.Math+stu[i].Score.English;
        n=n+1;
    }
}
void print()
{
    printf("Name              Sex    Num    Chinese    Math    English    Allscore\n");
        for(int i=0;i<n;i++)
        {
            printf("%-15s%-5s%-5d%-5f%-5f%-5f%-5f\n",stu[i].Name,stu[i].Sex,stu[i].Num,stu[i].Score.Chinese,stu[i].Score.Math,stu[i].Score.English,stu[i].Allscore);
        }
}
void main()
{
    input();
    print();
}										
					
	
 
											





 
	    


