指针问题 大家帮我啊

来源:百度知道 编辑:UC知道 时间:2024/05/31 03:23:32
#include<stdio.h>
void main()
{void average(float *p,int n);
int i,j;
float score[5][5];
printf("please input the score:");
for(i=0;i<5;i++)
for(j=0;j<5;j++)
scanf("%d,",&score[i][j]);
average(*score,25);
}
void average(float *p,int n)
{float *p_end;
float sum=0,aver;
p_end=p+n-1;
for(;p<=p_end;p++)
sum=sum+(*p);
aver=sum/n;
printf("average=%5.2f\n",aver);
}

这是原代码 求数组的平均值
1 对于数组的输入我总是搞不清楚 不知道怎么录入 尤其是二维数组
2 如果要求每一个同学的平均成绩 即 5个平均成绩怎么 求??
请大家帮帮我啊!!!!!

首先,你的成绩录入有问题。
scanf("%d,",&score[i][j]);
你定义的是float 这里用的%d。你的成绩肯定不正确。
其次,average(*score,25);
你的意思是求所有学生平均成绩,那就应该把这句拿到for的外面。
如果你要计算5个学生每个人的平均成绩,那么位置别动;
把参数25改成5(给average函数传参数的时候要做相应改动),定义一个float数组。
例如 float avg[5];
然后把average(*score,25); 改成
avg[i] = average(&score[i][0],5);

求总的平均值只要把avg数组平均下就OK了

在调用函数的时候使用循环 控制每次只求一个同学的平均成绩 要控制指针的走位