c++题目内容:程序设计,输入10名学生语文、数学、外语课成绩,计算每名学生3门课的平均成绩,输出每个人各科成绩及平均成绩,并分析3门课程的优秀率(90分以上为优秀)。
时间: 2024-05-10 11:17:48 浏览: 13
以下是一份可能的C++代码实现:
```cpp
#include <iostream>
using namespace std;
const int NUM_STUDENTS = 10;
const int NUM_SUBJECTS = 3;
const int EXCELLENT_SCORE = 90;
int main() {
int scores[NUM_STUDENTS][NUM_SUBJECTS];
double averages[NUM_STUDENTS];
int numExcellent[NUM_SUBJECTS] = {0};
// 输入每个学生的成绩
for (int i = 0; i < NUM_STUDENTS; i++) {
cout << "Input scores for student " << i+1 << ": ";
for (int j = 0; j < NUM_SUBJECTS; j++) {
cin >> scores[i][j];
}
}
// 计算每个学生的平均成绩,并输出每个学生的成绩和平均成绩
for (int i = 0; i < NUM_STUDENTS; i++) {
double sum = 0;
cout << "Scores for student " << i+1 << ": ";
for (int j = 0; j < NUM_SUBJECTS; j++) {
cout << scores[i][j] << " ";
sum += scores[i][j];
if (scores[i][j] >= EXCELLENT_SCORE) {
numExcellent[j]++;
}
}
averages[i] = sum / NUM_SUBJECTS;
cout << "Average: " << averages[i] << endl;
}
// 输出每门课程的优秀率
for (int j = 0; j < NUM_SUBJECTS; j++) {
double excellentRate = static_cast<double>(numExcellent[j]) / NUM_STUDENTS;
cout << "Excellent rate for subject " << j+1 << ": " << excellentRate << endl;
}
return 0;
}
```
这份代码中,我们使用了一个二维数组 `scores` 来存储每个学生的成绩,使用一个一维数组 `averages` 来存储每个学生的平均成绩。我们使用一个 `numExcellent` 数组来记录每门课程的优秀人数,最后根据这个数组计算出每门课程的优秀率。注意,我们在计算优秀率时使用了类型转换,将整数除法得到的结果转换为浮点数,以便得到一个精确的比例。
以上代码仅供参考,实际实现可能因环境和需求的不同而有所变化。