C语言 程序中想要调用grade_panduan函数用于结构体类型数组来判断成绩是否合理 但总是显示错误 printf("高等数学:"); scanf("%d",&ST[i].math); int grade_panduan(int ST[i].math);

#include
#include
#define ST_NUM 2//学生数 在运行开始前修改
//int number panduan(char b);
int grade_panduan(int a);
typedef struct
{
char num[10];//学号
char name[9];//姓名
int xuefen;//获得学分
int math;//高等数学成绩
int pe;//大学体育成绩
int chinesehistory;//中国近代史成绩
int daolun;//软件技术导论成绩
int english;//大学英语
int c_program;//C语言程序设计
float average;//平均分
}student;
student ST[ST_NUM];
void main()
{
int i,j;
printf("请输入%d个学生的信息;\n",ST_NUM);
for(i=0;i {
printf("请输入学号:");
scanf("%s",&ST[i].num);
printf("姓名:");
scanf("%s",&ST[i].name);
printf("高等数学:");
scanf("%d",&ST[i].math);
int grade_panduan(int ST[i].math);
printf("大学体育:");
scanf("%d",&ST[i].pe);
printf("中国近代史纲要:");
scanf("%d",&ST[i].chinesehistory);
printf("软件技术导论成绩:");
scanf("%d",&ST[i].daolun);
printf("大学英语:");
scanf("%d",&ST[i].english);
printf("C语言成绩:");
scanf("%d",&ST[i].c_program);
}
for(i=0;i {
ST[i].xuefen=5*(ST[i].math>=60)+(ST[i].pe>=60)+2*(ST[i].chinesehistory>=60)+2*(ST[i].daolun>=60)+4*(ST[i].english>=60)+4*(ST[i].c_program>=60);
ST[i].average=(ST[i].math+ST[i].pe+ST[i].chinesehistory+ST[i].english+ST[i].c_program)/6;
}
printf("学号\t姓名\t");
printf("学分\t数学\t体育\t中国近代史纲要\t导论\t大学英语 C语言\t平均分\n");
for (i=0;i<ST_NUM;i++)
{
printf("%s\t%s\t",ST[i].num,ST[i].name);
printf("%d\t",ST[i].xuefen);
printf("%d\t",ST[i].math);
printf("%d\t",ST[i].pe);
printf("%d ",ST[i].chinesehistory);
printf("%d\t",ST[i].daolun);
printf("%d\t",ST[i].english);
printf("%d\t",ST[i].c_program);
printf("%f\n",ST[i].average);
}
}
int grade_panduan(int a)
{
if(0<=a<=100)
return 1;
else
{
printf("成绩输入错误");

}
return 0;
}

scanf("%s",&ST[i].num);
scanf("%s",&ST[i].name);

应为

scanf("%s",ST[i].num);
scanf("%s",ST[i].name);

printf("高等数学:");
scanf("%d",&ST[i].math);
int grade_panduan(int ST[i].math);
你这样写,是声明函数还是调用函数? 调用不要加‘int’