新手求助,c语言数据类型不匹配

#include
int Readscore(float b[]);
float Average(int x,float b[]);
int high(float a,float b[]);
#define N 40
int main()
{
int n,y;
float m,score[N];
y=Readscore(score[N]);
m=Average(y,score[N]);
n=high(m,score[N]);
printf("成绩高于平均分的人数为:%d",n);
return 0;
}
int Readscore(float b[])
{
int i=-1;
do
{
i++;
printf("请输入学生的成绩: ");
scanf("%f",&b[i]);
}while(b[i]>=0);
return i;
}
float Average(int x,float b[])
{
float sum=0;
int i;
for(i=0;i<x;i++)
{
sum=sum+b[i];
}
return sum/x;

}
int high(float a,float b[])
{
int i;
for(i=0;b[i]>a;i++);
return i;
}
图片说明

程序目的:统计高于平均分同学的人数

函数调用错了,数组参量只需要将数组名作为参量即可,若是要从数组的某个元素开始,就需要采用取地址的方式作为参数

还有,你的函数并没有由参数告知数组长度,会出现数组越界的情况

最后一个函数,乱来啊,你自己看下逻辑吧……

y = Readscore(**&**score[N]);
m = Average(y, &score[N]);
n = high(m, &score[N]);

y=Readscore(score);
m=Average(y,score);
n=high(y,m,score);

int high(int n,float a,float b[])
{
int i, s;
for(i=0;i if (b[i]>a) s++;
return s;
}

谢谢各位的回答,犯了好低级的错误

图片说明

![图片说明](https://img-ask.csdn.net/upload/201701/01/1483248955_584476.png)图片说明为什么会出现这些结果

修改为:
#include
int Readscore(float b[]);
float Average(int x,float b[]);
int high(float a,float b[]);
#define N 40
int main()
{
int n,y;
float m,score[N];
y=Readscore(score[]);
m=Average(y,score[]);
n=high(m,score[]);
printf("成绩高于平均分的人数为:%d",n);
return 0;
}
int Readscore(float b[])
{
int i=-1;
do
{
i++;
printf("请输入学生的成绩: ");
scanf("%f",&b[i]);
}while(b[i]>=0);
return i;
}
float Average(int x,float b[])
{
float sum=0;
int i;
for(i=0;i {
sum=sum+b[i];
}
return sum/x;
}
int high(float a,float b[])
{
int i;
for(i=0;b[i]>a;i++);
return i;
}