C语言指针数组问题求解答

#include

int main(){
void average(float (*p_ave),int n);
int i,j,(*p)[4];
float score[3][4];

  printf("please enter their score:");
  for(i=0;i<3;i++){
    for(j=0;j<4;j++){
    scanf("%d",&score[i][j]);
  }
  }
  average(*score,12);

  return 0;

}

void average(float (*p_ave),int n){
float *p_end;
float sum = 0,aver;
p_end = p_ave+n-1;
for(;p_ave<=p_end;p_ave++)
sum = sum+(*p_ave);
printf("%f",sum);

  return;

}

 输出以后sum是零,不管我输入什么数值,出来的结果都是零。是我没有把score中的数据传到average函数里面吗?求解答 感激不尽!

自己发现问题了,是scanf里的%f,应该改为%d.谢谢大家的帮助~~~

average函数没有声明,所以average函数没有被调用。应该先声明

你定义的*p_ave和* p_end都是指针类型,而n是float型,这两种类型不能进行计算

你定义的*p_ave和* p_end都是指针类型,而n是float型,这两种类型不能进行计算