急!!c语言中的一个小问题

来源:百度知道 编辑:UC知道 时间:2024/06/25 09:39:30
float Max=0,Min=0;
float average(float array[],int n)
{
int i;
float aver,sum=array[0];
Max=Min=array[0];
for(i=1;i<n;i++)
{
if(array[i]>Max)Max=array[i];
else if(array[i]<Min)Min=array[i];
sum=sum+array;
}
aver=sum/n;
return(aver);
}
main()
{
float ave,score[10];
int i;
for(i=0;i<10;i++)
scanf("%f",&score[i]);
ave=average(score[10],10);
printf("max=%6.2f\nmin=%6.2f\n",Max,Min,ave);
}

为什么会显示error C2115: 'function' : incompatible types
这可是教科书上的一个例题啊 !!

修改如下:#include<stdio.h>
float Max=0,Min=0;
float average(float *array,int n)
{
int i;
float aver,sum=array[0];
Max=Min=array[0];
for(i=1;i<n;i++)
{
if(array[i]>Max) Max=array[i];
else if(array[i]<Min) Min=array[i];
sum=sum+array[i];
}
aver=sum/n;
return(aver);
}
void main()
{
float ave,score[10];
int i;
for(i=0;i<10;i++)
scanf("%f",&score[i]);
ave=average(score,10);
printf("max=%6.2f\nmin=%6.2f\nave=%6.2f\n",Max,Min,ave);
}
满意的话就给个最佳 吧~~~

你这本书上的例题是改错题吗,楼上改的挺好

float average(float array[],int n)
{}

这么声明函数也行,其他修改的地方和我的都一样- -,就不贴了..

尽信书不如无书,书也是人编写的,中间肯定或多或少有错。
main函数中这句调用语句ave=average(score[10],10);有错,应该是ave=average(score,10); 子函数average中第一个形参是array[],是个地址,所以在main中调用,传实参的时候必须是个地址值,而average(score[10],10);调用,不但传的不是地址,而且越界访问了,因为score[10]是不存在的,这个数组的最大下标