32060049
2015-11-03 06:02
采纳率: 94.4%
浏览 1.5k
已采纳

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函数里面吗?求解答 感激不尽!
  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • 32060049 2015-11-03 07:39
    已采纳

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

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • 红狼512 2015-11-03 06:29

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

    评论
    解决 无用
    打赏 举报
  • qq_32525257 2015-11-03 06:38

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

    评论
    解决 无用
    打赏 举报
  • qq_32525257 2015-11-03 06:39

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

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题