请各位帮忙看看这个程序为什么出错了?
// 以下此程序不明白为什么错误#include<stdio.h>
void main()
{
void average(float *p,int n);
void search(float (*p)[4],int n); //
float score[3][4];
int i,j;
for(i=0;i<3;i++)
for(j=0;j<4;i++)
scanf("%f",score[i][j]);
average(*score,12);
/* 此处为什么是 *score ,他是指向数组的首元素,也就数score[0]的地址,而score是代表数组首元素的地址 score[0][0] 的地址,当他传递给被调用函数 void average(float *p,int n) 应该是数组首元素的地址score[0][0]的地址,为什么是 *score ? */
search(score,2);
/* 此处为什么是 score ,而score是代表数组首元素的地址 score[0][0] 的地址,当他传递给被调用函数 void search(float (*p)[4],int n) 是数组首元素的地址score[0][0]的地址,而被调用函数 是的 形参是 float (*p)[4] 的 *p 是指向一维数组的,也就是 score[0] , score[1] , score[2] ,他为什么能接受score 数组的首地址 ?
}
void average(float *p,int n)
{
float aver,sun=0;
float *x;
x = P+n-1;
for(;p<x;p++)
sun=sum+(*p);
aver=sum/n;
printf("%f\n",aver);
}
void search(float (*p)[4],int n)
{
int i;
for(i=0;i<4;i++)
printf("%f\n",*(*(p+n)+i));
}