下面代码怎么改呀,请大家帮帮忙

/*一、定义结构体类型:
     每个同学的信息:学号、姓名、性别、三门课程成绩(可以自由扩充,出生日期、电话、学号等等)
二、功能要求:
      运行后,提示输入数字,并运行数字所对应的功能,如:按1,执行“显示所有同学的信息”;按7,执行“删除一个同学”。
      1.显示所有同学的信息
      2.查找指定同学的信息  (可扩充其他信息的查找)
      3.修改指定同学的信息
      4.显示有不及格同学的信息  (统计显示其他信息)
      5.按指定课程排序输出
      6.增加一个新同学
      7.删除一个同学
      0.退出(还可以根据自己能力扩充功能,如文件存储读/写)
说明:
1、需要用到《结构体》这一章的基础知识(9.1节、9.2节)
2、按键且不需要输入回车,可参考【getchar getch getche的不用功能.cpp】文件*/
#include<stdio.h>
#include<stdilib.h>
#include<math.h>           
#include<string.h>//字符串
struct student
{
string name[50],sex[50];
int xuehao[50],gaoshu[50],dawu[50],C[50],phonenumber[50];
double aver;
};

struct student[5]={
{25164852 "zhangsan" "nan" 12658496354 59 96 91},
{10256958 "lisi"     "nan" 14557923012 85 80 94},
{95641280 "buwang"   "nan" 13027019529 94 90 98},
{12563078 "xiaoyu"   "nv"  18526945170 84 95 79},
};
 
/*void xianshi(struct student stu[100]);
void chazhao(struct student stu[100]);
void xiugai(struct student stu[100]);
void bujige(struct student stu[100]);
void paixu(struct student stu[100]);
void add(struct student stu[100]);
void cdelete(struct student stu[100]);*/

int main()
{
	int choice,i,n=0;
	printf("********学生信息管理系统********\n");
	printf("     1.显示所有同学的信息\n");
    printf("     2.查找指定同学的信息\n");  
    printf("     3.修改指定同学的信息\n");
    printf("     4.显示有不及格同学的信息\n");  
    printf("     5.按指定课程排序输出\n");
    printf("     6.增加一个新同学\n");
    printf("     7.删除一个同学\n");
    printf("     0.退出\n");
	printf("请输入你想执行的指令数字:");    scanf("%d",&choice);
	if(choice>7||choice<0)
	{
		printf("无法执行此指令,请重新输入\n");
	}
	if(choice==0)
	{
		printf("退出成功");
	}
	switch(choice)
	{
	case 1:xianshi(stu);break;
	case 2:chazhao(stu);break;
	case 3:xiugai(stu);break;
	case 4:bujige(stu);break;
	case 5:paixu(stu);break;
	case 6:add(stu);break;
    case 7:cdelete(stu);break;
	}
	return 0;
}

void xianshi(struct student stu[100])    
{
	int i,n;
	for (i=0;i<n;i++)
	{
		printf("学号\t\t  姓名\t\t   性别\t\t  电话号码\t\t  高数\t\t  大物\t\t  C\t\t  ");//\t横向调到下一制表符位置
		for (i=0;i<n;i++)
		{     
			printf("%d\t",stu[i].xuehao);
			printf("%s\t",stu[i].name);//%s输出的是字符串,%c只能输出一个字符
			printf("%s\t",stu[i].sex);
			printf("%d\t",stu[i].gaoshu);
			printf("%d\t",stu[i].dawu);
			printf("%d\t",stu[i].C);
			printf("%d\t",stu[i].phonenumber);
		}
	}
}

void chazhao(struct student stu[100]);
{
	int i,n,x[10];//x代表学生学号
	printf("请输入你想查找的学生的学号:");    scanf("%d",&x);
	for (i=0;i<n;i++)
	{
		if (x=stu[i].xuehao)     
			{
			printf("学号\t\t  姓名\t\t   性别\t\t  电话号码\t\t  高数\t\t  大物\t\t  C\t\t  ")
			printf("%d\t",stu[i].xuehao);
			printf("%s\t",stu[i].name);
			printf("%s\t",stu[i].sex);
			printf("%d\t",stu[i].gaoshu);
			printf("%d\t",stu[i].dawu);
			printf("%d\t",stu[i].C);
			printf("%d\t",stu[i].phonenumber);
			}
		else			
			printf("抱歉,该学生信息不存在\n");
	}
}

void xiugai(struct student stu[100]);
{	
	int i,n,x[10];//x代表学生学号
    printf("请输入你想修改的学生的学号:");    scanf("%d",&x);
	for (i=0;i<n;i++)
	{
		if (x=stu[i].xuehao)       
		{
			printf("请选择你想修改的学生信息\n");
            printf("1.name  2.sex  3.xuehao  4.phonenumber  5.gaoshu  6.dawu  7.C  ");
		}
			scanf(%d",&ch);
				if(ch==1)
					printf("请输入你想修改后的学生姓名:%s",&stu[i].name);
				if(ch==2)
					printf("请输入你想修改后的学生性别:%s",&stu[i].sex);
				if(ch==3)
					printf("请输入你想修改后的学生学号:%d",&stu[i].xuehao);
				if(ch==4)
					printf("请输入你想修改后的学生电话:%d",&stu[i].phonenumber);
				if(ch==5)
					printf("请输入你想修改后的学生高数成绩:%d",&stu[i].gaoshu);
				if(ch==6)
					printf("请输入你想修改后的学生大物成绩:%d",&stu[i].dawu);
				if(ch==7)
					printf("请输入你想修改后的学生C成绩:%d",&stu[i].C);
				else	
					printf("选择无效 请重新输入\n");break;
		}
}

void bujige(struct student stu[100]);
{
	int i,n;
	for(i=0;i<n;i++)
	{
		if(stu[i].gaoshu||stu[i].dawu||stu[i].C<60)
		{
            printf("学号\t\t  姓名\t\t   性别\t\t  电话号码\t\t  高数\t\t  大物\t\t  C\t\t  ")
			printf("%d\t",stu[i].xuehao);
			printf("%s\t",stu[i].name);
			printf("%s\t",stu[i].sex);
			printf("%d\t",stu[i].gaoshu);
			printf("%d\t",stu[i].dawu);
			printf("%d\t",stu[i].C);
			printf("%d\t",stu[i].phonenumber);
		}
	}
}

void paixu(struct student stu[100])
{
	int i,j,choice,flag;
	printf("请问您想按按哪科成绩进行排序\n");
	printf("1、高数 2、大物 3、C语言 \n");			scanf("%d",&choice);
	switch (choice)
	{
		case 1:for (i=0;i<count;i++)
			   {
				   flag=i; 
				   for (j=i+1;j<count;j++)
					   if (stu[j].gaoshu>stu[flag].gaohhu)
						   t=stu[j];stu[j]=stu[flag];stu[flag]=t;
			   };break;
		case 2:for (i=0;i<count;i++)
			   {
				   flag=i; 
				   for (j=i+1;j<count;j++)
					   if (stu[j].dawu>stu[flag].dawu)
						   stu[j]=stu[flag];							
			   };break;
		case 3:for (i=0;i<count;i++)
			   {
				   flag=i;
				   for (j=i+1;j<count;j++)
					   if (stu[j].C>stu[flag].C)
						   t=stu[j];stu[j]=stu[flag];stu[flag]=t;
			   };break;

		default:printf("无效的选择 请重新输入\n");break;
	}
}

void add(struct student stu[100])
{
	printf("请输入你想添加的学生信息:");
	printf("请输入该生的学号:%d",&stu[i].xuehao);
	printf("请输入该生的姓名:%s",&stu[i].name);
	printf("请输入该生的性别:%d",&stu[i].sex);
	printf("请输入该生的电话:%d",&stu[i].phonenumber);
	printf("请输入该生的高数成绩:%d",&stu[i].gaoshu);
	printf("请输入该生的大物成绩:%d",&stu[i].dawu);
	printf("请输入该生的C成绩:%d",&stu[i].C);
}

void cdelete(struct student stu[100])
{
	printf("请输入你想删除的学生的学号:");scanf("%d",xuehao);
	if(stu[i].xuehao==xuehao)
	{
		delete stu[i];
	}
}



		
	

 

参考GPT和自己的思路:

首先,代码中的 struct student[5] 是错误的定义方式,应该是 struct student stu[5],表示定义了一个长度为 5 的 student 数组。

其次,代码中的结构体定义也存在问题,应该改为如下形式:

struct student {
    int xuehao;
    char name[50];
    char sex[50];
    int gaoshu;
    int dawu;
    int C;
    int phonenumber;
};

其中,姓名和性别应该是字符串类型(char数组),而成绩和电话号码则应该是整型(int)。

最后,代码中的函数定义也存在语法问题,应该把函数名放在参数列表的前面,例如:

void xianshi(struct student stu[100]) {...}
void chazhao(struct student stu[100]) {...}
void xiugai(struct student stu[100]) {...}
void bujige(struct student stu[100]) {...}
void paixu(struct student stu[100]) {...}
void add(struct student stu[100]) {...}
void cdelete(struct student stu[100]) {...}

另外,函数定义后面没有实现,需要完善函数代码。