出现的问题是,运行case9后,程序显示结束 return -1;并没有生成并写入文件。程序的那一部分代码如下:typedef struct student{ char ke[20]; char name[15]; char xuehao[15]; int chengji[21]; float average;} AO;int n,m,chengji[50][21]= {0},q,x=0,y,i,j,k,l,c,v;char chaxuehao[15],danke[20];AO xx[50];int main(){again: printf("*************菜单功能************\n"); printf("1、 数据录入\n"); printf("2、 数据加载\n"); printf("3、 数据删除\n"); printf("4、 数据修改\n"); printf("5、 数据查询\n"); printf("6、 数据统计\n"); printf("7、 数据排序\n"); printf("8、 数据显示\n"); printf("9、 数据存储\n"); printf("10、 退出\n");again3: scanf("%d",&l); getchar(); switch(l) { case 1: input(); goto again3; break;// 这是数据输入 case 9: printf("%s",xx[0].name);//检验到case9时是否已经在结构体中存入数据。 write(xx,n,m); break;void input(){ for(i=0; i<49; i++) { xx[i].average=0; for(k=0; k<20; k++) xx[i].chengji[k]=0; } printf("请输入学生个数:"); scanf("%d",&n); printf("\n请输入课程数目:"); scanf("%d",&m); getchar(); for(i=0; i<n; i++) { printf("请输入第%d个学生的姓名:\n",i+1); scanf("%s",xx[i].name);getchar(); } for(i=0; i<m; i++) { printf("请输入第%d堂课程的名称:",i+1); scanf("%s",xx[i].ke);getchar(); } for(i=0; i<n; i++) { printf("请输入%s的学号:",xx[i].name); scanf("%s",xx[i].xuehao); for(j=0; j<m; j++) { printf("请输入%s的%s成绩:",xx[i].name,xx[j].ke); scanf("%d",&xx[i].chengji[j]); getchar(); } } for(i=0; i<n; i++) { for(k=0; k<m; k++) xx[i].chengji[20]+=xx[i].chengji[k]; } for(i=0; i<n; i++)xx[i].average=(float)(xx[i].chengji[20])/m; printf("录入成功!\n");}void wirte(AO data[],int n,int m){ FILE *fp; int i,j; if((fp=fopen("save.txt","w"))==NULL) { printf("存储失败!\n"); return 0; }printf("输入成功!"); fwrite(data,sizeof(AO),n,fp); fclose(fp);}