user-0 提问: 编译无错可一运行就出问题是什么原因？

回复:
user: user-1
content: 估计你文件没有打开成功，fopen后先检查文件是否打开成功

user: user-2
content: 代码功能归根结底不是别人帮自己看或讲解或注释出来的；而是被自己静下心来花足够长的时间和精力亲自动手单步或设断点或对执行到某步获得的中间结果显示或写到日志文件中一步一步分析出来的。 提醒：再牛×的老师也无法代替学生自己领悟和上厕所！ 单步调试和设断点调试（VS IDE中编译连接通过以后，按F10或F11键单步执行，按Shift+F11退出当前函数；在某行按F9设断点后按F5执行停在该断点处。）是程序员必须掌握的技能之一。

user: user-0
content: void Appe()    /*追加模块*/   { 	int n,i;    	printf("       *******************\n"); 	printf("         请输入要追加的条数   n= ?      \n");   	printf("       *******************\n");   	scanf("%d",&n);   	printf(" *************************\n");  	printf("   请输入所追加的学生信息 \n");  	printf(" *************************\n");    	printf("*********************************************************************\n");    	printf("     学号     名字     英语     数学      计算机      物理     总分\n");    	printf("**********************************************************************\n");    	for(i=0;i<n;i++)   	{ 		scanf("%d%s%lf%lf%lf%lf%lf", 			&s[N].xh,s[N].name,&s[N].yy,&s[N].mat,&s[N].jsj,&s[N].wl,&s[N].zf);   		N++;   	}  }    void Modi()   /*修改模块*/   { 	int x,m,n,k=0,i,j;  	char st[20];    	printf("=======================================\n");   	printf("==           1.学号                ==\n");   	printf("==           2.名字                ==\n");    	printf("=====================================\n");  	scanf("%d",&m);   	if(m==1)    	{ 		printf("=====================================\n");  		printf("        请输入 学号                   \n");  		printf("=======================================");  		scanf("%d",&n);   		for(i=0;i<N;i++)  			if(n==s[i].xh) 			{  				k=1;j=i; 			}   	}    	else if(m==2)  	{ 		printf("=====================================\n"); 		printf("         请输入 名字                  \n");   		printf("======================================\n");   		scanf("%s",st);     		for(i=0;i<N;i++)  			if(!strcmp(s[i].name,st))    			{ 				k=1;j=i; 			}   	}    	if(k==1)  	{ 		printf("*********************************************************************\n");   		printf("  请问要修改哪项？    1:英语     2:数学      3:计算机      4:物理           \n");     		printf("**********************************************************************\n");    		scanf("%d",&x);  		switch(x)  		{  		case 1:scanf("%lf",&s[j].yy); break;     		case 2:scanf("%lf",&s[j].mat); break;     		case 3:scanf("%lf",&s[j].jsj); break;    		case 4:scanf("%lf",&s[j].wl); break;   		}   	}   	else   	{   		printf("===========================\n");  		printf("         出现错误        *\n");   		printf("============================\n");  	}  }   void Dele()   /*删除模块*/   { 	int m,n,k=0,j,i;   	char str[20];    	printf("       ===============================\n");   	printf("       =       1.按学号删            =\n");   	printf("       =       2.按姓名删            =\n");    	printf("       ===============================\n");   	scanf("%d",&m);  if(m==1)   	{  		printf("       ===============================\n");   		printf("        =       请输入学号!           =\n");       		printf("       ===============================\n");   		scanf("%d",&n);   		for(i=0;i<N;i++)    			if(n==s[i].xh)    			{  				k=1;j=i; 			}   	}    	else if(m==2) 	{  		printf("       ===============================\n");  		printf("        ==         请输入名字!      ===\n");   		printf("        ===============================\n");  		scanf("%s",str);   		for(i=0;i<N;i++)     			if(!strcmp(s[i].name,str))     			{ 				k=1;j=i; 			}   	}      	if(k==1)   	{ 		for(i=j;i<N-1;i++)     			s[i]=s[i+1];   		N--;     	}      	else  	{   		printf("=============================\n");            		printf("   没有要删除的此人      *\n");         		printf("============================\n");     	}  }    void Query()   /*查询模块*/   { 	int n,num,i,k,j;   	char xm[10];    	printf("1、按学号查询   2、按姓名查询\t");  printf("\n请输入你的选择:\t");  	scanf("%d",&n);  	if(n==1)  	{    		printf("\n请输入学号:");   		scanf("%d",&num);   		for(i=0;i<N;i++)     			if(num==s[i].xh)     			{     				k=1; 				j=i;  			}   	}    	else if(n==2)  	{    		printf("请输入姓名:");    		scanf("%s",xm);    		for(i=0;i<N;i++)     			if(strcmp(s[i].name,xm)==0)   			{      				k=1;      				j=i;      			}   	}    	if (k==1)  	{    		printf("学号    姓名       英语        数学         计算机        物理       总分\n");     		printf("===============================================================================\n");    		printf("%d   %s    %f    %f    %f    %f    %f\n", 			s[j].xh ,s[j].name ,s[j].yy ,s[j].mat ,s[j].jsj ,s[j].wl, s[j].zf);     		printf("===============================================================================\n");   	}    	else printf("没有所查询的人");  getchar();  }     void Quit()    /*退出*/     {   	printf("                     ******  Thank you  bye  ****** \n");  	printf("\t***************************************************************\n"); 	printf("\n");   	printf("\t*                     谢谢使用学生成绩管理系统                *\n");  	printf("\n");  	printf("\t*                                                             *\n");  	printf("\n");   	printf("\t*                      钟一文（制作）                         *\n");  	printf("\n");   	printf("\t*                    学号：201101040232                      *\n");  	printf("\n");   	printf("\t_________________    如有疑问，请致电13047237362    ___________\n");  	printf("\t***************************************************************\n");  	printf("\n");   	printf("\t                                                 2012年06月26日\n");    }    void main()  {  	int sele;    	Re_file();    	sele=1;   	while(sele)   	{  		printf("\n\n");   		printf("    ***欢迎使用学生成绩管理系统***\n");   		printf("     ****************************\n");      		printf("     *                          *\n");    		printf("     *   1:显示        2:追加   *\n");   		printf("     *                          *\n");    		printf("     *   3:修改        4:删除   *\n");  		printf("     *                          *\n");     		printf("     *   5:查询        6:排序   *\n");     		printf("     *                          *\n");    		printf("     *   7:统计        8.退出   *\n");    		printf("     *                          *\n");   		printf("     ****************************\n");     		printf("\n\n请输入你的选择: ");     		scanf("%d",&sele);    		switch(sele)      		{        		case 1:Disp();break;        		case 2:Appe();Disp();break;       		case 3:Modi();Disp();break;       		case 4:Dele();Disp();break;      		case 5:Query();break;      		case 6:Sort();Disp(); break;   		case 7:Total(); break;        		case 8:Quit(); sele=0;break;     		}    		printf("\n\nPress any key to continue\n");   		getchar();    	}     	Wr_file();    }