求C语言题目!谢谢 第八题!

求C语言题目!谢谢 第八题!

第一个图中的都在主函数中实现了。

第二张图中的要求也做出了修改,代码中有注释,你应该能看明白,具体如下,如有帮助,请采纳一下,谢谢。

#include <stdio.h>
#include <stdlib.h>
#define STU 60  //最多的学生人数
#define COURSE 3 //考试科目数
//输入n个学生的3门课成绩
void input(int score[][COURSE],int n)
{
	//1.键盘输入方法
	for (int i = 0; i < n; i++)
	{
		printf("请输入第%d名学生的成绩:",i+1);
		for (int j = 0; j < COURSE; j++)
		{
			scanf("%d",&score[i][j]);
		}
		//scanf("%d %d %d",&score[i][0],&score[i][1],&score[i][2]);
	}
	//2.随机生成成绩
	/*for (int i = 0; i < n; i++)
	{
		for (int j = 0; j < COURSE; j++)
			score[i][j] = rand()%100;
	}*/
}
//需要输入学号时
void input_2(int num[],int score[][COURSE],int n)
{
	//1.键盘输入方法
	for (int i = 0; i < n; i++)
	{
		printf("请输入第%d名学生的学号和成绩:",i+1);
		scanf("%d",&num[i]);
		for (int j = 0; j < COURSE; j++)
		{
			scanf("%d",&score[i][j]);
		}
		//scanf("%d %d %d",&score[i][0],&score[i][1],&score[i][2]);
	}
	//2.随机生成成绩
	/*for (int i = 0; i < n; i++)
	{
		num[i] = i+1;
		for (int j = 0; j < COURSE; j++)
			score[i][j] = rand()%100;
	}*/
}

//当学生人数未知时
void input_3(int num[],int score[][COURSE],int &n)
{
	n = 0;
	while(true)
	{
		printf("请输入第%d名学生的学号和成绩:",n+1);
		scanf("%d",&num[n]);
		if (num[n] < 0)
		{
			break;
		}
		for (int j = 0; j < COURSE; j++)
		{
			scanf("%d",&score[n][j]);
		}
		n++;
	}
}


//计算每个学生的平均分
void averforstu(int score[][COURSE],float aver[],int n)
{
	for (int i = 0; i < n; i++)
	{
		int sum = 0;
		for (int j = 0;j < COURSE;j++)
		{
			sum += score[i][j];
		}
		aver[i] = sum;
	}
}
//输出n个学生的3门课成绩和个人平均分
void output(int score[][COURSE],float aver[],int n)
{
	printf("            程序设计    英语    数学    平均分\n");
	for (int i = 0; i < n; i++)
	{
		printf("第%d个学生       %d       %d      %d      %.2f\n",i+1,score[i][0],score[i][1],score[i][2],aver[i]);
	}
}

int main()
{
	int score[STU][COURSE];
	float aver[STU];
	float averC[COURSE];   //每门课的平均分
	int num[STU];          //存储学生的学号

	int n = 3;  //学生人数
	//(1)
	input(score,n);
	//(2)
	averforstu(score,aver,n);
	//(3)
	output(score,aver,n);

	//计算每门课的平均分
	for (int i = 0; i < COURSE; i++)
	{
		averC[i] = 0.0;
		for (int j = 0; j < n; j++)
		{
			averC[i] += score[i][j];
		}
		averC[i] = averC[i] / COURSE;
	}
	
	//如果需要输入学生的学号,input函数需要修改一下,增加一个参数
	//void input_2(int num[],int score[][COURSE],int n);
	//学号录入用%d即可

	//当学生人数未知时,input修改如下
	//void input_3(int num[],int score[][COURSE],int &n);
	getchar();
	getchar();
	return 0;
}