6、输入10个学生5门课的成绩,分别用函数实现下列功能:(选做)
(1) 计算每个学生的平均分。
(2) 计算每门课的平均分。
(3) 找出所有50个分数中最高的分数所对应的学生和课程;
(4) 计算平均分方差:
,其中,xi为某一个学生的平均分。
程序代码:
#include <stdio.h>
#include <math.h>
#define STUDENTS 10
#define COURSES 5
float studentAverage(float scores[STUDENTS][COURSES], int student) {
float sum = 0;
for (int i = 0; i < COURSES; i++) {
sum += scores[student][i];
}
return sum / COURSES;
}
float courseAverage(float scores[STUDENTS][COURSES], int course) {
float sum = 0;
for (int i = 0; i < STUDENTS; i++) {
sum += scores[i][course];
}
return sum / STUDENTS;
}
void highestScore(float scores[STUDENTS][COURSES]) {
float maxScore = scores[0][0];
int maxStudent, maxCourse;
for (int i = 0; i < STUDENTS; i++) {
for (int j = 0; j < COURSES; j++) {
if (scores[i][j] > maxScore) {
maxScore = scores[i][j];
maxStudent = i;
maxCourse = j;
}
}
}
printf("最高分数所对应的学生为: 学生%d\n", maxStudent + 1);
printf("最高分数所对应的课程为: 课程%d\n", maxCourse + 1);
}
float averageVariance(float scores[STUDENTS][COURSES]) {
float sum = 0;
float average = 0;
for (int i = 0; i < STUDENTS; i++) {
for (int j = 0; j < COURSES; j++) {
sum += scores[i][j];
}
}
average = sum / (STUDENTS * COURSES);
float variance = 0;
for (int i = 0; i < STUDENTS; i++) {
for (int j = 0; j < COURSES; j++) {
variance += pow(scores[i][j] - average, 2);
}
}
return variance / (STUDENTS * COURSES);
}
int main() {
float scores[STUDENTS][COURSES];
printf("请输入10个学生的5门课成绩:\n");
for (int i = 0; i < STUDENTS; i++) {
printf("请输入第%d个学生的成绩:\n", i + 1);
for (int j = 0; j < COURSES; j++) {
scanf("%f", &scores[i][j]);
}
}
// 计算每个学生的平均分
printf("每个学生的平均分分别为:\n");
for (int i = 0; i < STUDENTS; i++) {
float avg = studentAverage(scores, i);
printf("学生%d的平均分: %.2f\n", i + 1, avg);
}
printf("\n");
// 计算每门课的平均分
printf("每门课的平均分分别为:\n");
for (int i = 0; i < COURSES; i++) {
float avg = courseAverage(scores, i);
printf("课程%d的平均分: %.2f\n", i + 1, avg);
}
printf("\n");
// 找出最高分数所对应的学生和课程
highestScore(scores);
printf("\n");
// 计算平均分方差
float variance = averageVariance(scores);
printf("平均分方差为: %.2f\n", variance);
return 0;
}
标签:printf,int,float,STUDENTS,11.10,COURSES,scores From: https://www.cnblogs.com/lml66/p/17909384.html