请大神看一下这错怎么改

 

/*
ompiling...
ceshi.cpp
d:\visual c\ceshi.cpp(51) : error C2144: syntax error : missing ')' before type 'STUDENT'
d:\visual c\ceshi.cpp(51) : error C2660: 'add' : function does not take 0 parameters
d:\visual c\ceshi.cpp(51) : error C2059: syntax error : ')'
d:\visual c\ceshi.cpp(65) : error C2065: 'maxsize' : undeclared identifier
执行 cl.exe 时出错.

ceshi.obj - 1 error(s), 0 warning(s)

*/

#include<stdio.h>
#include <stdlib.h>

  struct STUDENT{
		int number;
		char name[20];
		int eng;
		int com;
		int math;                 
		int total;
		double average;
};
 struct STUDENT student;

//查找
void search();
//修改
void update();
//添加
void add(struct STUDENT p,int n);
//删除
void delete1();


void main(){
int change,n;
	STUDENT *p;
printf("请输入大约的学生人数");
	scanf("%d",&n);


	p=(STUDENT *)malloc(n*sizeof(student));

	if(p==NULL){
	printf("分配内存失败!!!");
	exit(0);
	}

printf("请按照数字来进行选择!\n");
printf("1,查找\n");
printf("2,修改\n");
printf("3,添加\n");
printf("4,删除\n");

scanf("%d",&change);


switch(change){
	case 1:search();break;
	case 2:update();break;
	case 3:add(struct STUDENT p,int n);break;//这里是错误
	case 4:delete1();break;
	default:printf("请重新选择数字");
}                                


}


void search(){
	int cid,i;
	printf("欢迎来到查询系统\n");
	printf("请输入你想查询的学号\n");
	scanf("%d",&cid);
	for(i=0;i<maxsize;i++){
	
	}

}

//**********************************************
void update(){

}
//***********************


void add(struct STUDENT p,int n){

	printf("欢迎来到录入系统\n");
	int k=0,h;
	/*printf("录入几行学生:");
     scanf("%d",&j);
      fflush(stdin);*/
	while(k<n)
	{
		printf("学号:");
		scanf("%d",&p.number);
         fflush(stdin);
        printf("姓名:");
		scanf("%s",&p.name);
		  (stdin);
		   printf("英语成绩:");
		scanf("%d",&p.eng);
		  (stdin);
		printf("计算机成绩:");
		scanf("%d",&p.com);
		fflush(stdin);
		printf("数学成绩:");
		scanf("%d",&p.math);
		fflush(stdin);
		
		p.total=p.com+p.eng+p.math;
		p.average=p.total/3;
		printf("\n");
		k++;
	  
	}
	printf("录入成功\n");
	printf("如果需要返回菜单请按1\n");
			scanf("%d",&h);
			if(h==1)
			{
				main();
			}


}


void delete1(){




}

 

d:\visual c\ceshi.cpp(51) : error C2144: syntax error : missing ')' before type 'STUDENT'

 

第 51 行是哪一句?

有点不想吐槽。。。

1.maxsize没定义,编译器又不可能懂英文。

2.函数声明或定义时参数要有类型描述,调用时你也这样?

上面64行add(struct STUDENT p,int n);改成add(*p,n);