请在下列成绩的基础上进行修改,进行程序功能的函数化,实现学生成绩的录入、均值计算及信息显示等功能采用函数来解决。在功能函数化中,不能采用全局变量。
#include<stdio.h>
#define STUDENT 3
#define COURSE 2
int main()
{
int i;
float grade[STUDENT][COURSE];
float student_average[STUDENT],course_average[COURSE];
float *position, *ptr, (*ptr_col)[COURSE], sum;
/*录入学生成绩,将存储成绩的grade数组看出一维数组*/
printf("请输入学生成绩\n");
for (position=&grade[0][0];position<=&grade[STUDENT-1][COURSE-1];position++)
{
scanf("%f",position);
}
/*按行求学生成绩均值**/
ptr=&student_average[0];
for (i=0;i<STUDENT;i++)
{
sum=0;
for (position=grade[i];position<grade[i]+COURSE;position++)
{
sum+=*position;
}
*ptr++=sum/COURSE;
}
/*按列求课程平均成绩*/
ptr=&course_average[0];
for (i=0;i<COURSE;i++)
{
sum=0;
for (ptr_col=&grade[0];ptr_col<=&grade[STUDENT-1];ptr_col++)
{
sum+=(*ptr_col)[i];
}
*ptr++=sum/STUDENT;
}
for (i=0;i<COURSE;i++)
{
printf("%8.2f", course_average[i]);
}
printf("\n");
for (i=0;i<STUDENT;i++)
{
printf("%8.2f", student_average[i]);
}
return 0;
}