算法描述:
有一个半,3个学生,各学4门课,计算总平均分以及第n个学生的成绩
#include <stdio.h>
int main()
{
void average(float *p, int n);
void search(float (*p)[4], int n);
float score[3][4] = {{65, 67, 70, 60}, {80, 87, 90, 81}, {90, 99, 100, 98}};
average(*score, 12);//*score <----------> &score[0][0]二维数组首元素首地址表示法
search(score, 2);//score表示数组0行起始地址
return 0;
}
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);
}
void search(float (*p)[4], int n)
{
int i;
printf("the score of No.%d are:\n", n);
for(i = 0; i < 4; i++)
printf("%5.2f\n", *(*(p + n) + i));//*(p + n) + i <--------------> &score[n][i]
printf("\n");
}