在写C语言结构体时,程序编译出现以下问题,请求帮助

#include<stdio.h>structStudent//作用范围为整个文件{intnum;charname[20];intscore[3];doubleavera... #include<stdio.h>
struct Student //作用范围为整个文件
{
int num;
char name[20];
int score[3];
double avera;
};
void main()
{
void input(struct Student stu[]);
void average(struct Student stu[]);
int max(struct Student stu[]);
int maxi;
struct Student
{
int num;
char name[20];
int score[3];
int avera;
};
struct Student student[10],* p=student;
input(p);
maxi=max(p);
printf("%d",maxi);
}
void input(struct Student stu[])
{
int i;
printf("请按提示输入学生信息");
for(i=0;i<10;i++)
{
printf("请输入学号:");
scanf("%d",&stu[i].num);
printf("请输入学生姓名:");
scanf("%s",stu[i].name);
printf("请输入3门课程的成绩");
scanf("%d %d %d",&stu[i].score[1],&stu[i].score[2],&stu[i].score[1]);
stu[i].avera= (stu[i].score[1]+stu[i].score[2]+stu[i].score[3])/3.0;
}
}
void average(struct Student stu[])
{
int i;
for(i=0;i<10;i++)
stu[i].avera= (stu[i].score[1]+stu[i].score[2]+stu[i].score[3])/3.0;
}

int max(struct Student stu[])
{
int k,sum[10],i,max;
k=0;
max=0;
for(i=0;i<10;i++)
{
sum[i]=stu[i].score[1]+stu[i].score[2]+stu[i].score[3];
if(sum[i]>max)
{
max=sum[i];
k=i;
}
}
return k;
}

出现以下问题:
Compiling...
11.c
F:\C语言\Debug\11.c(23) : warning C4133: 'function' : incompatible types - from 'struct Student *' to 'struct Student *'
F:\C语言\Debug\11.c(24) : warning C4133: 'function' : incompatible types - from 'struct Student *' to 'struct Student *'
11.obj - 0 error(s), 2 warning(s)
展开
 我来答
sleeplioncj
2013-05-28 · TA获得超过288个赞
知道小有建树答主
回答量:177
采纳率:0%
帮助的人:108万
展开全部
在主函数中调用input(p);maxi=max(p);这两个函数的时候,使用的参数是指针p,而在函数实现的时候的参数是结构体型的数组,所以出现警告参数不匹配。而且结构体定义两遍,你在主函数里面定义结构体在外部函数里面是无法使用的,就会出现主函数里面使用的结构体变量和外部函数使用的结构体变量调用不同。
建议都使用结构体型的数组,这个程序里面你使用的指针没有任何意义,反而会引起不必要的麻烦。假如你的结构体数组中学生的数量不确定,建议使用指针链表,这个时候指针就很有意义。
吾好梦中殺猪
2013-05-28 · TA获得超过335个赞
知道小有建树答主
回答量:267
采纳率:0%
帮助的人:326万
展开全部
你定义的两个函数 形参 是数组类型,你调用时传了指针,所以提示了这个错误。
追问
谢谢您的回答,问题是我定义了两遍结构体,main里面忘记删除掉了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式