猿问

请帮我解释一句代码:题目是创建一个函数,使用二维数组计算5名学生3门科目的每科最高分和每名学生的平均分

#include <stdio.h>
#define NUMBER 5 //人数
#define SUBJECT 3 //科目数

int max_of(const int score[NUMBER][SUBJECT],int no)
{
	int i;
	int max=score[0][SUBJECT];  //就是这一句我不懂,帮我解释一下
	for (i=1;i<NUMBER;i++)
	{
		if (score[i][no]>max)
		{
			max=score[i][no];
		}
	}
	return max;
}
float average(const int score[NUMBER][SUBJECT],int no)
{
	int i;
	int sum=0;
	for (i=0;i<SUBJECT;i++)
	{
		sum += score[no][i];
		
	}
	return((double)sum/SUBJECT);
}
int main(void)
{
	int score[NUMBER][SUBJECT];
	int i,j;
	puts("请输入学生的分数");
	for (i=0;i<NUMBER;i++)
	{
		printf("学生:no.%2d\n",i+1);
		for (j=0;j<SUBJECT;j++)
		{
			printf("no.%2d科的分数:\n",j+1);
			scanf("%d",&score[i][j]);
		}
		putchar('\n');
	}
	puts("计算每科的最高分:");
	for (i=0;i<SUBJECT;i++)
	{
		printf("no.%2d科目的最高分是:%2d\n",i+1,max_of(score,i));
	}
	puts("计算每人的平均分:");
	for (i=0;i<NUMBER;i++)
	{
		printf("no.%2d的平均分是:%.2f\n",i+1,(double)average(score,i));
	}
	return 0;

}


叫什么名字好呢1
浏览 1671回答 4
4回答

慕粉1469895870

定义一个结构体数组,然后操作数组就可以

qyy2499760117_叶子

   int max=score[0][SUBJECT];  是指多维数组取值,也就是数组中的数组。相当于   int max=score[0][0]; 

慕粉1470493291

int   arry [5][3],剩下的你就自己设计吧

汤少主

感觉这好像有错误,那一行代码的数组的下标越界了。而且下一句的循环好像也错了,应该是i=0开始,而不是i=1开始。望采纳
随时随地看视频慕课网APP
我要回答