c语言 输入2个学生5门课的成绩,分别用函数求:(1)每个学生的平均分;(2)每门课的平均分;(3)找出最高的分数所对应的学生和课程;(4)求出每个学生平均分的方差:(1/n)(∑xi2) - ((∑xi)/ n)2。 **输入
时间: 2023-12-12 18:04:06 浏览: 138
c代码-五个学生考五科,求平均分最高的为多少分并求出其序号(行可控制0-6)
好的,我可以帮你解决这个问题。以下是完整的代码实现:
```c
#include <stdio.h>
void getScore(int score[][5], int n) {
int i, j;
for (i = 0; i < n; i++) {
printf("请输入第%d个学生的5门成绩:\n", i + 1);
for (j = 0; j < 5; j++) {
scanf("%d", &score[i][j]);
}
}
}
void getStudentAverage(int score[][5], int n, float ave[]) {
int i, j;
for (i = 0; i < n; i++) {
float sum = 0;
for (j = 0; j < 5; j++) {
sum += score[i][j];
}
ave[i] = sum / 5.0;
}
}
void getSubjectAverage(int score[][5], float ave[]) {
int i, j;
for (j = 0; j < 5; j++) {
float sum = 0;
for (i = 0; i < 2; i++) {
sum += score[i][j];
}
ave[j] = sum / 2.0;
}
}
void getMaxScore(int score[][5], int *stu, int *sub) {
int i, j;
int max = score[0][0];
for (i = 0; i < 2; i++) {
for (j = 0; j < 5; j++) {
if (score[i][j] > max) {
max = score[i][j];
*stu = i + 1;
*sub = j + 1;
}
}
}
}
float getVariance(float ave[], int n) {
int i;
float sum1 = 0, sum2 = 0;
for (i = 0; i < n; i++) {
sum1 += ave[i] * ave[i];
sum2 += ave[i];
}
return sum1 / n - (sum2 / n) * (sum2 / n);
}
int main() {
int score[2][5];
float studentAve[2], subjectAve[5];
int maxStu, maxSub;
float variance;
getScore(score, 2);
getStudentAverage(score, 2, studentAve);
getSubjectAverage(score, subjectAve);
getMaxScore(score, &maxStu, &maxSub);
variance = getVariance(studentAve, 2);
printf("每个学生的平均分为:%.2f, %.2f\n", studentAve[0], studentAve[1]);
printf("每门课的平均分为:%.2f, %.2f, %.2f, %.2f, %.2f\n", subjectAve[0], subjectAve[1], subjectAve[2], subjectAve[3], subjectAve[4]);
printf("最高分数对应的学生为%d, 课程为%d, 分数为%d\n", maxStu, maxSub, score[maxStu - 1][maxSub - 1]);
printf("每个学生平均分的方差为:%.2f\n", variance);
return 0;
}
```
注意,这个代码中使用了五个函数来完成题目要求:
1. `getScore` 函数用来获取输入的成绩。
2. `getStudentAverage` 函数用来计算每个学生的平均分。
3. `getSubjectAverage` 函数用来计算每门课的平均分。
4. `getMaxScore` 函数用来找出最高分数所对应的学生和课程。
5. `getVariance` 函数用来计算每个学生平均分的方差。
在 `main` 函数中,我们依次调用这些函数,最后输出结果。注意,输出浮点数时使用了 `%.2f` 的格式化字符串,保留两位小数。
阅读全文