用c++编写一个程序,使用最基础的知识: 输入 m 个学生 n 门课的成绩,分别用函数实现下列功能 1、计算每个学生的平均分 2、计算每门课的平均分 3、找出所有50个分数中最高的分数所对应的学生和课程 4、计算平均分方差
时间: 2024-01-01 19:05:05 浏览: 281
好的,这是一个比较典型的程序设计问题,可以通过使用 C++ 的基础语法来实现。以下是我的实现:
```c++
#include <iostream>
#include <cmath>
using namespace std;
const int MAX_STUDENT_NUM = 100;
const int MAX_COURSE_NUM = 10;
int scores[MAX_STUDENT_NUM][MAX_COURSE_NUM];
int student_num, course_num;
// 计算每个学生的平均分
void calc_student_average() {
for (int i = 0; i < student_num; i++) {
int sum = 0;
for (int j = 0; j < course_num; j++) {
sum += scores[i][j];
}
double average = sum / (double)course_num;
cout << "第" << i + 1 << "个学生的平均分是:" << average << endl;
}
}
// 计算每门课的平均分
void calc_course_average() {
for (int i = 0; i < course_num; i++) {
int sum = 0;
for (int j = 0; j < student_num; j++) {
sum += scores[j][i];
}
double average = sum / (double)student_num;
cout << "第" << i + 1 << "门课的平均分是:" << average << endl;
}
}
// 找出所有50个分数中最高的分数所对应的学生和课程
void find_highest_score() {
int max_score = -1;
int max_student_index = -1;
int max_course_index = -1;
for (int i = 0; i < student_num; i++) {
for (int j = 0; j < course_num; j++) {
if (scores[i][j] > max_score) {
max_score = scores[i][j];
max_student_index = i;
max_course_index = j;
}
}
}
cout << "最高分是:" << max_score << endl;
cout << "最高分所对应的学生是:" << max_student_index + 1 << endl;
cout << "最高分所对应的课程是:" << max_course_index + 1 << endl;
}
// 计算平均分方差
void calc_average_variance() {
double sum = 0;
for (int i = 0; i < student_num; i++) {
int student_sum = 0;
for (int j = 0; j < course_num; j++) {
student_sum += scores[i][j];
}
double student_average = student_sum / (double)course_num;
sum += pow(student_average - (double)student_sum / (student_num * course_num), 2);
}
double variance = sum / student_num;
cout << "平均分方差是:" << variance << endl;
}
int main() {
// 输入学生和课程数
cout << "请输入学生数和课程数:" << endl;
cin >> student_num >> course_num;
// 输入成绩
cout << "请按顺序输入每位学生的成绩:" << endl;
for (int i = 0; i < student_num; i++) {
cout << "请输入第" << i + 1 << "个学生的成绩:" << endl;
for (int j = 0; j < course_num; j++) {
cin >> scores[i][j];
}
}
// 计算每个学生的平均分
calc_student_average();
// 计算每门课的平均分
calc_course_average();
// 找出所有50个分数中最高的分数所对应的学生和课程
find_highest_score();
// 计算平均分方差
calc_average_variance();
return 0;
}
```
以上程序实现了输入 m 个学生 n 门课的成绩,并使用函数实现了 1、计算每个学生的平均分,2、计算每门课的平均分,3、找出所有50个分数中最高的分数所对应的学生和课程,4、计算平均分方差。
阅读全文