/*
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);