任务描述
本关任务:一个学习小组有
5
个人, 每个人有3
门课的考试成绩见下表,编程求每个人的总分和该学习小组各门课的平均成绩。要求5
个人3
门课的成绩是输入的,每个人的总分和各门课的平均成绩是计算出来的,每个模块都用函数完成。
姓名 高数 英语 C语言 易紫琴 85 78 88 杨岩 90 80 91 杨盛 79 92 84 朱恩雄 83 86 80 杨勇 87 75 95 相关知识
略
编程要求
根据提示,在右侧编辑器 Begin-End 区间补充代码,完成三个函数的定义,求每个人的总分和该学习小组各门课的平均成绩。具体要求如下:
- 函数 inputarr()实现二维数组的输入;
- 函数 printarr()实现二维数组的输出;
- 函数 main()调用以上两个函数,分别求出每个人的总分和该学习小组各门课的平均成绩,并按指定格式打印结果。
提示:求每个人的总分实际是将二维数组按行求和,求该学习小组各门课的平均成绩是将二维数组按列求和。
测试说明
平台会对你编写的代码进行测试。
测试输入:
85 78 88 60 90 80 91 79 92 50 84 83 45 86 80
预期输出:85 78 88
60 90 80
91 79 92
50 84 83
45 86 80
每个学生的总分:
251 230 262 217 211
每门课的平均分:
66.20 83.40 84.60
提示: 总分按
%6d
格式输出,平均分按%8.2f
格式输出。
开始你的任务吧,祝你成功!
#include <stdio.h>
#define M 5
#define N 3
void inputarr( int x[ ][N], int m, int n );
void printarr( int x[ ][N], int m, int n );
/********** Begin **********/
int main()
{
int sum=0,sum1=0;
int i,j;
float p;
int x[M][N]={0};
int m=5,n=3;
inputarr(x,m,n);
printarr(x,m,n);
printf("每个学生的总分:\n");
for(i=1;i<=m;i++)
{
sum=0;
for(j=1;j<=n;j++)
{
sum=sum+x[i-1][j-1];
}
printf(" %d",sum);
}
printf("\n");
printf("每门课的平均分:\n");
for(j=1;j<=n;j++)
{
sum1=0;
for(i=1;i<=m;i++)
{
sum1=sum1+x[i-1][j-1];
}
p=sum1/5.0;
printf(" %.2f",p);
}
return 0;
}
void inputarr( int x[ ][N], int m, int n )
{
int i,j;
for(i=0;i<m;i++)
for(j=0;j<n;j++)
scanf("%d",&x[i][j]);
}
void printarr( int x[ ][N], int m, int n )
{
double sum=0;
for(int i=0;i<m;i++){
for(int j=0;j<n;j++)
printf("%d ",x[i][j]);
printf("\n");}
for(int i=0;i<m;i++)
for(int j=0;j<n;j++)
sum+=x[i][j];
}
/********** End **********/