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

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

#include<stdio.h>
void st_avger(int s[5][4])//计算每个学生的平均分
{
	int a,b,c123;
	float s1[5],t=0;
	for(a=0;a<5;a++)
	{	
		for(b=0;b<4;b++)
		{
		    t=t+s[a][b];
		}
		s1[a]=t;
		t=0;
	}
	for(c123=0;c123<5;c123++) 
		printf("第%d个学生的平均成绩为%4.2f\n",c123,s1[c123]/4);
}
void sb_avger(int s[5][4])//计算每门课的平均分
{
	int a,b;
	float t=0;
	for(a=0;a<4;a++)
	{
		for(b=0;b<5;b++)
			t+=s[b][a];
		printf("第%d门课的平均成绩为%4.2f\n",a+1,t/5);
		t=0;
	}
}
void max(int s[5][4])
{
	int a3,b3,c3,t3,e3,f3,s3[20],s31[20];
	for(a3=0;a3<5;a3++)
	{
		for(b3=0;b3<4;b3++)
			s3[a3*4+b3]=s[a3][b3];//将二维数组降为一维数组
	}
	for(e3=0;e3<20;e3++)
		s31[e3]=s3[e3];//复制一个1维数组,方便找出最大的数字是否重复
    for(c3=0;c3<19;c3++)//找出数组最大的数字
		if(s3[c3]>=s3[c3+1])
		{
			t3=s3[c3+1];
			s3[c3+1]=s3[c3];
			s3[c3]=t3;
		}
	for(f3=0;f3<20;f3++)//找出最大数字在数组中是否重复,并输出重复的位置
	{
		if(s31[f3]==s3[19])
			printf("第%d个同学第%d门课分数最高,为%d\n",f3/4+1,f3%4+1,s31[f3]);/*在一维数组里
			                                                             每个同学占用四个位,所以很容易确定那个同学,成绩亦然*/
	}
}
void msv(int s[5][4])//计算平均分方差
{
    int a,b,c;
	float apex,xi2=0,xi=0,t=0,s1[5];
	for(a=0;a<5;a++)//计算每一个同学成绩的平均值
	{
		for(b=0;b<4;b++)
		    t=t+s[a][b];//t储存每一个同学的总成绩
		s1[a]=t/4;
		t=0;
	}
	for(c=0;c<5;c++)
	{
		xi2+=s1[c]*s1[c];
		xi+=s1[c];
	}
	apex=(xi2)/5-(xi/5)*(xi/5);//方差计算公式
	printf("平均分方差:%f\n",apex);
}
int main ()
{
	int s[5][4];
	int a1,b1;
	for(a1=0;a1<5;a1++)
		for(b1=0;b1<4;b1++)
		{
			printf("输入第%d名同学的第%d门课的分数:",a1+1,b1+1);
            scanf("%d",&s[a1][b1]);
		}
	st_avger(s);
	sb_avger(s);
	msv(s);
	max(s);
	return 0;
}

——————————————————————————————————————————————————————————————————————————————————————————
c语言中,一个变量如果不赋值,系统会随机给该变量一个数

  • 6
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答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. 计算每个学生的方差和标准差,并输出结果。 实现方法:定义一个函数输入门课程的成绩列表,遍历列表,计算平均值,再计算每个成绩与平均值的差的平方,并相加,得到方差。将方差开方,得到标准差。输出结果。 以上就是通过函数实现输入学生成绩列表进行各种统计分析的方法。这样做可以有效地减少代码量,减少出错的可能性,提高代码的可读性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值