输人10个学生5门课的成绩,分别用函数实现下列功能:

输人10个学生5门课的成绩,分别用函数实现下列功能:
①计算每个学生的平均分;
②计算每门课的平均分;
③找出所有50个分数中最高的分数所对应的学生和课程;
④计算平均分方差:

其中,x;为某一学生的平均分
 

#include<stdio.h>

#define N 10
#define M 5
float score[N][M];
float a_stu[N], a_cour[M];
int r, c;

//输入学生成绩信息函数
void input_stu(void)
{
	int i, j;
	for (i = 0; i < N; i++)
	{
		printf("\ninput score of student%2d:\n", i + 1);
		for (j = 0; j < M; j++)
			scanf("%f", &score[i][j]);
	}
}

//每个学生平均分
void aver_stu(void)
{
	int i, j;
	float s;
	for (i = 0; i < N; i++)
	{
		for (j = 0, s = 0; j < M; j++)
			s += score[i][j];
		a_stu[i] = s / 5.0;
	}
}

//每门课程平均分
void aver_cour(void)
{
	int i, j;
	float s;
	for (j = 0; j < M; j++)
	{
		s = 0;
		for (i = 0; i < N; i++)
			s += score[i][j];
		a_cour[j] = s / (float)N;
	}
}

//最高分函数
float highest()
{
	float high;
	int i, j;
	high = score[0][0];
	for (i = 0; i < N; i++)
	for (j = 0; j<M; j++)
	if (score[i][j]>high)
	{
		high = score[i][j];
		r = i + 1;
		c = j + 1;
	}
	return(high);
}

//方差函数
float s_var(void)
{
	int i;
	float sumx, sumxn;
	sumx = 0.0;
	sumxn = 0.0;
	for (i = 0; i < N; i++)
	{
		sumx += a_stu[i] * a_stu[i];
		sumxn += a_stu[i];
	}
	return(sumx / N - (sumxn / N)*(sumxn / N));
}

int main()
{
	int i, j;
	float h;
	input_stu();
	aver_stu();
	aver_cour();
	printf("\n  NO.     cour1   cour2   cour3   cour4   cour5   aver\n");
	for (i = 0; i < N; i++)
	{
		printf("\n NO %2d ", i + 1);
		for (j = 0; j < M; j++)
			printf("%8.2f", score[i][j]);
		printf("%8.2f\n", a_stu[i]);
	}
	printf("\naverage:");
	for (j = 0; j < M; j++)
		printf("%8.2f", a_cour[j]);
	printf("\n");
	h = highest();
	printf("highest:%7.2f   NO. %2d   course %2d\n", h, r, c);
	printf("variance %8.2f\n", s_var());
	return 0;
}

  • 8
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
### 回答1: 1. 计算每个学生的平均分数 2. 计算每门课的平均分数 3. 找出最高分数的学生和课程 4. 找出最低分数的学生和课程 1. 定义一个函数输入学生成绩列表,输出每个学生的平均分数。 2. 定义一个函数输入学生成绩列表,输出每门课的平均分数。 3. 定义一个函数输入学生成绩列表,输出最高分数的学生和课程。 4. 定义一个函数输入学生成绩列表,输出最低分数的学生和课程。 ### 回答2: 1. 计算每个学生的平均分数,并将平均分数打印到屏幕上。 2. 计算每门课的平均分数,并将平均分数打印到屏幕上。 3. 找出最高分数的学生和他们的成绩,并将他们的信息打印到屏幕上。 4. 找出最低分数的学生和他们的成绩,并将他们的信息打印到屏幕上。 5. 找出每门课的最高分数和最低分数,并将它们的信息打印到屏幕上。 题目答案: 本题可以用Python语言来实现。我们可以定义一个列表来存储学生成绩,其中每个元素代表一个学生成绩,每个元素又是一个列表,包含了该生的5门课程的成绩。我们可以使用Python的函数实现这些功能。 1. 计算每个学生的平均分数,并将平均分数打印到屏幕上。 def avg_student_score(student_scores): avg_scores = [] for student in student_scores: avg_score = sum(student) / len(student) avg_scores.append(avg_score) return avg_scores student_scores = [[60,70,80,90,100],[70,80,90,80,90],[80,90,90,70,80],[80,60,70,80,90],[70,80,70,80,90],[80,90,70,80,90],[60,50,70,80,90],[70,80,90,80,90],[80,90,70,80,90],[80,60,70,80,90]] avg_scores = avg_student_score(student_scores) print('每个学生的平均分数为:', avg_scores) 2. 计算每门课的平均分数,并将平均分数打印到屏幕上。 def avg_course_score(student_scores): course_scores = [[], [], [], [], []] for student in student_scores: for i in range(5): course_scores[i].append(student[i]) avg_scores = [] for course in course_scores: avg_score = sum(course) / len(course) avg_scores.append(avg_score) return avg_scores student_scores = [[60,70,80,90,100],[70,80,90,80,90],[80,90,90,70,80],[80,60,70,80,90],[70,80,70,80,90],[80,90,70,80,90],[60,50,70,80,90],[70,80,90,80,90],[80,90,70,80,90],[80,60,70,80,90]] avg_scores = avg_course_score(student_scores) print('每门课的平均分数为:', avg_scores) 3. 找出最高分数的学生和他们的成绩,并将他们的信息打印到屏幕上。 def highest_score(student_scores): highest_scores = [] highest_students = [] for student in student_scores: highest = max(student) highest_scores.append(highest) highest_score = max(highest_scores) for index, student in enumerate(student_scores): if highest_score in student: highest_student = '学生' + str(index + 1) highest_scores = student highest_students.append(highest_student) return highest_students, highest_scores student_scores = [[60,70,80,90,100],[70,80,90,80,90],[80,90,90,70,80],[80,60,70,80,90],[70,80,70,80,90],[80,90,70,80,90],[60,50,70,80,90],[70,80,90,80,90],[80,90,70,80,90],[80,60,70,80,90]] highest_students, highest_scores = highest_score(student_scores) print('最高分数的学生是:', highest_students) print('他们的成绩是:', highest_scores) 4. 找出最低分数的学生和他们的成绩,并将他们的信息打印到屏幕上。 def lowest_score(student_scores): lowest_scores = [] lowest_students = [] for student in student_scores: lowest = min(student) lowest_scores.append(lowest) lowest_score = min(lowest_scores) for index, student in enumerate(student_scores): if lowest_score in student: lowest_student = '学生' + str(index + 1) lowest_scores = student lowest_students.append(lowest_student) return lowest_students, lowest_scores student_scores = [[60,70,80,90,100],[70,80,90,80,90],[80,90,90,70,80],[80,60,70,80,90],[70,80,70,80,90],[80,90,70,80,90],[60,50,70,80,90],[70,80,90,80,90],[80,90,70,80,90],[80,60,70,80,90]] lowest_students, lowest_scores = lowest_score(student_scores) print('最低分数的学生是:', lowest_students) print('他们的成绩是:', lowest_scores) 5. 找出每门课的最高分数和最低分数,并将它们的信息打印到屏幕上。 def highest_and_lowest_course_score(student_scores): course_scores = [[], [], [], [], []] for student in student_scores: for i in range(5): course_scores[i].append(student[i]) highest_scores = [] lowest_scores = [] for course in course_scores: highest_score = max(course) lowest_score = min(course) highest_scores.append(highest_score) lowest_scores.append(lowest_score) return highest_scores, lowest_scores student_scores = [[60,70,80,90,100],[70,80,90,80,90],[80,90,90,70,80],[80,60,70,80,90],[70,80,70,80,90],[80,90,70,80,90],[60,50,70,80,90],[70,80,90,80,90],[80,90,70,80,90],[80,60,70,80,90]] highest_scores, lowest_scores = highest_and_lowest_course_score(student_scores) for i in range(5): print('第', i+1, '门课的最高分数是:', highest_scores[i]) print('第', i+1, '门课的最低分数是:', lowest_scores[i]) 函数avg_student_score()用于计算每个学生的平均分数,它遍历每一个学生成绩列表,用sum()函数求出总分数,再除以列表长度,计算出平均分数。函数返回结果是一个列表,包含了每个学生的平均分数。 函数avg_course_score()用于计算每门课的平均分数,它遍历每个学生成绩列表,同时遍历每门课程,将每门课程的成绩放到对应的列表中,最后用sum()函数求出总分数,再除以列表长度,计算出平均分数。函数返回结果是一个列表,包含了每门课的平均分数。 函数highest_score()用于找出最高分数的学生和他们的成绩,它遍历每个学生成绩列表,用max()函数求出该列表中的最高分数,将最高分数与每个学生成绩列表进行比较,如果该学生成绩列表中有最高分数,就将该学生的信息记录下来。函数返回结果是两个列表,一个包含了最高分数的学生,另一个包含了他们的成绩函数lowest_score()用于找出最低分数的学生和他们的成绩,它遍历每个学生成绩列表,用min()函数求出该列表中的最低分数,将最低分数与每个学生成绩列表进行比较,如果该学生成绩列表中有最低分数,就将该学生的信息记录下来。函数返回结果是两个列表,一个包含了最低分数的学生,另一个包含了他们的成绩函数highest_and_lowest_course_score()用于找出每门课的最高分数和最低分数,它遍历每个学生成绩列表,同时遍历每门课程,将每门课程的成绩放到对应的列表中,用max()函数求出最高分数,用min()函数求出最低分数。函数返回结果是两个列表,一个包含了每门课的最高分数,另一个包含了每门课的最低分数。 ### 回答3: 1. 统计每门课程的平均分和总分,并输出结果。 实现方法:定义一个函数输入学生成绩列表,遍历列表,将每个学生的该门成绩相加,得到该门总分,再除以学生人数,得到该门平均分。输出结果。 2. 统计每个学生的平均分和总分,并输出结果。 实现方法:定义一个函数输入门课成绩列表,遍历列表,将该学生的所有成绩相加,得到该学生总分,再除以课程数,得到该生平均分。输出结果。 3. 统计所有学生门课程的最高分和最低分,并输出结果。 实现方法:定义一个函数输入门课程的成绩列表,遍历列表,找到最高分和最低分。输出结果。 4. 统计每个学生的最高分和最低分,并输出结果。 实现方法:定义一个函数输入门课程的成绩列表,遍历列表,找到该学生的最高分和最低分。输出结果。 5. 计算每门课程的方差和标准差,并输出结果。 实现方法:定义一个函数输入门课程的成绩列表,遍历列表,计算平均值,再计算每个成绩与平均值的差的平方,并相加,得到方差。将方差开方,得到标准差。输出结果。 6. 计算每个学生的方差和标准差,并输出结果。 实现方法:定义一个函数输入门课程的成绩列表,遍历列表,计算平均值,再计算每个成绩与平均值的差的平方,并相加,得到方差。将方差开方,得到标准差。输出结果。 以上就是通过函数实现输入学生成绩列表进行各种统计分析的方法。这样做可以有效地减少代码量,减少出错的可能性,提高代码的可读性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

*OASIS*

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值