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

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

在这里插入图片描述

1.程序:

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include<string.h>
float average[10];
int main()
{
	void stu_average(float arr[][5]);
	void course_average(float arr[][5]);
	void search(float arr[][5]);
	void fangcha(float arr[][5]);

	float arr[10][5];
	int i, j;
	for (i = 0; i < 10; i++)
	{
		for (j = 0; j < 5; j++)
		{
			scanf("%f", &arr[i][j]);
		}
	}
	stu_average(arr);
	course_average(arr);
	search(arr);
	fangcha(arr);
}
void stu_average(float arr[][5])
{
	int i, j;
	float sum;
	for (i = 0; i < 10; i++)
	{
		sum = 0;
		for (j = 0; j < 5; j++)
		{
			sum += arr[i][j];
		}
		average[i] = sum / 5;
		printf("第%d个学生平均分为%f\n", i + 1, sum / 5);
	}
}
void course_average(float arr[][5])
{
	int i, j;
	float sum;
	for (i = 0; i < 5; i++)
	{
		sum = 0;
		for (j = 0; j < 10; j++)
		{
			sum += arr[j][i];
		}
		printf("第%d门课学生平均分为%f\n", i + 1, sum / 10);
	}
}
void search(float arr[][5])
{
	int i, j;
	float h = arr[0][0];
	int hi = 0, hj = 0;
	for (i = 0; i < 10; i++)
	{
		for (j = 0; j < 5; j++)
		{
			if (arr[i][j] > h)
			{
				h = arr[i][j];
				hi = i + 1;
				hj = j + 1;
			}
		}
	}
	printf("最高分为%f,是第%d个学生,第%d门课\n", h, hi, hj);
}
void fangcha(float arr[][5])
{
	float xi2 = 0, xi = 0, result;
	int i, j;
	for (i = 0; i < 10; i++)
	{
		xi2 += average[i] * average[i];
		xi += average[i];
	}
	result = xi2 / 10 - (xi / 10) * (xi / 10);
	printf("方差为%f\n", result);
}

2.输入:

87 88 92 67 78
88 86 87 98 90
76 75 65 65 78
67 87 60 90 67
77 78 85 64 56
76 89 94 65 76
78 75 64 67 77
77 76 56 87 85
84 67 78 76 89
86 75 64 69 90

3.输出:

1个学生平均分为82.402个学生平均分为89.803个学生平均分为71.804个学生平均分为74.205个学生平均分为72.006个学生平均分为80.007个学生平均分为72.208个学生平均分为76.209个学生平均分为78.8010个学生平均分为76.801门课学生平均分为79.602门课学生平均分为79.603门课学生平均分为74.504门课学生平均分为74.805门课学生平均分为78.60
最高分为98.00,是第2个学生,4门课
方差为28.71

效果:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

尹蓝锐

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

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

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

打赏作者

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

抵扣说明:

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

余额充值