有无大佬帮一下我,有偿。

代码

可以在Dev C++上编译运行。

但在VC2010上编译,运行失败。

有大佬能帮我不,有偿。

可以将代码贴出来大家看看,应该能找到问题

把变量申明全部放到函数的开头部分试试

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define N 30 

void input();
void show();
void save(); 
void del();
void change();
void search();
void sort();
void statistics();
void quit();

struct Student
   {
      int num;
	  char name[20];
	  char sex;
	  int  age;
	  char beizhu[100];
   };struct Student a[30];

int count=0,i;//定义全局变量 

char m[10]={"123456"};
int main()
{
	char n[20],t;
    struct Student a[N];
    FILE * fp;        
	   fp=fopen("学生信息.txt","w+");
	   {
	     fscanf(fp,"%d\n",&count);
         for(i=0;i<count;i++)
		 {
		    fscanf(fp,"学号:%d\n姓名:%s\n性别:%c\n年龄:%d\n备注:%s\n",&a[i].num,a[i].name,&a[i].sex,&a[i].age,&a[i].beizhu);
		 }
        fclose(fp);
	   }
	printf("学生信息管理系统\n"); 
	while(1)
	{
	  	
		printf("请输入密码:\n");
		gets(n);
	if(strcmp(m,n)==0)
	{
	printf("请选择系统功能项:\n"); 
	while(1)
    {
    printf("a.学生基本信息录入\n");
    printf("b.学生基本信息显示\n");
    printf("c.学生基本信息保存\n");
	printf("d.学生基本信息删除\n");
    printf("e.学生基本信息修改\n");
	printf("f.学生基本信息查询\n (1).按学号查询\n (2).按姓名查询\n (3).按性别查询\n (4).按年龄查询\n");
	printf("g.排序显示\n");
	printf("h.数据统计\n"); 
	printf("x.退出系统\n");
    printf("输入选择:");
	scanf("%d",&t);
    t=getchar();
    switch(t)
    {
    	case 'a':
    		input();break;
    	case 'b':
    		show();break;
		case 'c':
			save();break;
		case 'd':
			del();break;
		case 'e':
			change();break;
		case 'f':
			search();break;
		case 'g':
			sort();break;
		case 'h':
			statistics();break;
		case 'x':
			quit();break;
		default:
			printf("无此项操作!\n");	
	}
	}

	}else
	   printf("密码错误\n");
    }
		return 0; 
}



void input()
{
	char d; 
	for(i=count;i<N;i++)
	   {
		 printf("请输入学生%d的信息:学号、姓名、性别、年龄、备注\n",(count+1));
         scanf("%d %s %c %d %s",&a[i].num,a[i].name,&a[i].sex,&a[i].age,&a[i].beizhu);
		 count++;
		 printf("是否继续输入?Y/N\n");
		 getchar();
		 scanf("%c",&d);
		 if(d=='Y')
		 continue;
		 else if(d=='N')
		 break;
		 else
		 {
		 printf("输入错误,请重新输入!\n");
		 count--;
		 }
		 
 } } 
 

 
 void show()
 {
 		   for(i=0;i<count;i++)
       {
		  printf("学号:%d\n姓名:%s\n性别:%c\n年龄:%d\n备注:%s\n",
		  a[i].num,a[i].name,a[i].sex,a[i].age,a[i].beizhu);
       }
 }
 

 void save()
 {
 		   FILE * fp;
	   fp=fopen("学生信息.txt","w+");
	   fprintf(fp,"总共输入了%d个学生的信息\n",count);//用格式化方式读入文件
       for(i=0;i<count;i++)
       {
		  fprintf(fp,"学号:%d\n姓名:%s\n性别:%c\n年龄:%d\n备注:%s\n",
		  a[i].num,a[i].name,a[i].sex,a[i].age,a[i].beizhu);
       } 
	   printf("保存成功!\n");
       fclose(fp);//用fclose函数关闭数据文件
 }
 

 void del()
 {
 	int xuehao,i1,flag=0;
       printf("请输入要删除学生的学号:\n");
	   scanf("%d",&xuehao);
	   for(i=0;i<count;i++)
	   {
	     if(xuehao==a[i].num)
		  {
			 flag=1;
		     for(i1=i;i1<count-1;i1++)
			 {
			    a[i1]=a[i1+1];
			 }
		  }
	   }
	   if(flag=0)
		   printf("查无此人\n");
	   if(flag=1)
	   {
		  count-=1;
		  printf("删除成功\n");
	   }
 }
 

 void change()
 {
 	char n1[20],c2;
	int  c1,k;
	printf("请输入密码:\n");
    scanf("%s",n1);
	if(strcmp(m,n1)==0)
	{
	    printf("请输入要修改学生的学号:\n");
		scanf("%d",&c1);
		for(i=0;i<count;i++)
		{
		    if(a[i].num==c1)
			{
				while(1)
				{
				   if(k==5)
					break;
				   printf("1.修改姓名\n");
                   printf("2.修改年龄\n");
                   printf("3.修改性别\n");
                   printf("4.修改备注\n");
                   printf("5.退出\n");
				   printf("请输入你的选择:\n");
				   scanf("%d",&k);
				   switch(k)
				   {
				   case 1:printf("请输入新姓名:\n");
					      scanf("%s",n1);
					      strcpy(a[i].name,n1);break;
				   case 2:printf("请输入新年龄:\n");
					      scanf("%d",&c1);
					      a[i].age=c1;break;
                   case 3:printf("请输入新性别:\n");
					      scanf("%c",&c2);
					      a[i].sex=c2;break;
                   case 4:printf("请输入新备注:\n");
					      scanf("%s",n1);
					      strcpy(a[i].beizhu,n1);break;
			       case 5:break;
				   default:printf("无此项操作\n");
				   }
				}
			 }
		  }
	   }
	   else
		   printf("密码错误\n");
 }
 

 
 void search()
 {
 	int x,l1;
 	char l2;
	printf(" (1).按学号查询\n (2).按姓名查询\n (3).按性别查询\n (4).按年龄查询\n");
	printf("请选择:");
    scanf("%d",&x);
	if(x==1)
	{
		int b1;
		printf("请输入学号:");
	    scanf("%d",&b1);
	    for(i=0;i<count;i++)
		{
	    	if(b1==a[i].num)
			break; 
		 }
	    if(i>=count)
        printf("查无此人\n");
        else
	    printf("学号:%d\n姓名:%s\n性别:%c\n年龄:%d\n备注\n",
		a[i].num,a[i].name,a[i].sex,a[i].age,a[i].beizhu);
		}
		else if(x==2)
		{
			int j=0;
		    char name1[20];
			printf("请输入姓名:\n");
            scanf("%c",&l2);
            gets(name1);
			for(i=0;i<count;i++)
			{
            if(strcmp(name1,a[i].name)==0)
              printf("学号:%d\n姓名:%s\n性别:%c\n年龄:%d\n备注%s\n",
		      a[i].num,a[i].name,a[i].sex,a[i].age,a[i].beizhu);
			j=1;
			}
			if(j==0)
              printf("查无此人\n");
		}
		else if(x==3)
		{
		   char sex1;
           printf("请输入性别:");
		   scanf("%d",&l1);
		   scanf("%c",&sex1);
           for(i=0;i<count;i++)
		   {
		   if(sex1==a[i].sex)
             printf("学号:%d\n姓名:%s\n性别:%c\n年龄:%d\n备注%s\n",
		     a[i].num,a[i].name,a[i].sex,a[i].age,a[i].beizhu);
		   }
		}
		else if(x==4)
		{
		   int y;
           printf("请输入年龄:");
		   scanf("%d",&y);
           for(i=0;i<count;i++)
		   {
		   if(y==a[i].age)
             printf("学号:%d\n姓名:%s\n性别:%c\n年龄:%d\n备注%s\n",
		     a[i].num,a[i].name,a[i].sex,a[i].age,a[i].beizhu);
		   }
		}
		else
		   printf("无此项操作\n");
 }
 

 
 void sort()
 {
 		int i,j,k; 
	printf("按什么进行排序?\n" );
	printf("1.学号\n2.年龄\n");
	scanf("%d",&k);
	if(k==1)
	{
		for(i=1;i<count;i++)
        for(j=0;j<i;j++)
		if(a[i].num>a[j].num) 
		{
		long double  num;
	  	char name[20];
	  	char sex;
	  	int  age;
	  	char beizhu[100];
		strcpy(name,a[i].name);
    	strcpy(a[i].name,a[j].name);
    	strcpy(a[j].name,name);
 		num=a[i].num;
 		a[i].num=a[j].num;
 		a[j].num=num; 
 		sex=a[i].sex;
 		a[i].sex=a[j].sex;
 		a[j].sex=sex;
     	age=a[i].age;
	 	a[i].age=a[j].age;
 		a[j].age=age;
  		strcpy(beizhu,a[i].beizhu);
    	strcpy(a[i].beizhu,a[j].beizhu);
    	strcpy(a[j].beizhu,beizhu);
    
		} 
	} 
	else if(k==2)
	{
	 for(i=1;i<count;i++)
        for(j=0;j<i;j++)
		if(a[i].age>a[j].age) 
		{
		long double  num;
	  	char name[20];
	  	char sex;
	  	int  age;
	  	char beizhu[100];
		strcpy(name,a[i].name);
    	strcpy(a[i].name,a[j].name);
    	strcpy(a[j].name,name);
    	num=a[i].num;
 		a[i].num=a[j].num;
 		a[j].num=num; 
 		sex=a[i].sex;
 		a[i].sex=a[j].sex;
 		a[j].sex=sex;
    	age=a[i].age;
 		a[i].age=a[j].age;
 		a[j].age=age;
  		strcpy(beizhu,a[i].beizhu);
    	strcpy(a[i].beizhu,a[j].beizhu);
    	strcpy(a[j].beizhu,beizhu);
		} 
	} 
		else
	 	printf("输入错误!\n"); 
 }

 void statistics()
 {
 	printf("1.男女生人数统计:\n");
		printf("2.年龄段人数统计:\n");
		int xuanxiang,m,n,male=0,female=0,young=0,old=0;
		scanf("%d",&xuanxiang);
		if(xuanxiang==1)
		 {
		 	for(m=0;m<count;m++)
		 	{
		 		 if(a[m].sex=='M')
				 male++;
				 else if(a[m].sex=='F')
				 female++;
				 else
				 {
				 printf("输入错误!请重新输入:\n"); 
				 m--; 
				 } 
			 }
			 printf("男生人数:%d\n",male);
			 printf("女生人数:%d\n",female); 
			  
		 } 
		 else if(xuanxiang==2)
		 {
		 	for(n=0;n<count;n++)
			 {
			 	switch(a[n].age/10)
				 {
				 case 1: young++;break;
				 case 2: old++;break;
				 default:printf("昆工没有这么老的学生!\n");break; 
				 }
			 } 
			 printf("10-19岁人数:%d\n",young);
			 printf("20-29岁人数:%d\n",old); 
		 } 
 }
 

 void quit()
 {
 	printf("成功退出系统!\n");
	exit(0);
 }