c++输入某班学生某门课程的成绩(最多不超过40人),当输入为负值时,表示输入结束,用函数编程统计成绩高于平均分的学生人数。
时间: 2024-11-29 11:37:37 浏览: 8
在C++中,你可以编写一个程序来实现这个功能,包括一个主函数以及一个用于处理输入并计算平均分数及高分学生数的辅助函数。以下是一个简单的示例:
```cpp
#include <iostream>
#include <vector>
// 函数声明
int count_students_above_average(const std::vector<int>& scores);
int main() {
int score;
std::vector<int> student_scores;
// 循环接收输入直到遇到负值
while (true) {
std::cout << "请输入学生的成绩(负数结束输入): ";
std::cin >> score;
if (score < 0)
break; // 输入结束
student_scores.push_back(score);
}
// 调用函数统计并输出结果
double average_score = calculate_average(student_scores);
int high_scorers_count = count_students_above_average(student_scores);
std::cout << "平均分为: " << average_score << std::endl;
std::cout << "高于平均分的学生有: " << high_scorers_count << "名" << std::endl;
return 0;
}
// 辅助函数:计算平均值
double calculate_average(const std::vector<int>& scores) {
double sum = 0;
for (int i : scores)
sum += i;
return sum / scores.size();
}
// 辅助函数:统计高于平均分的学生数
int count_students_above_average(const std::vector<int>& scores) {
double average = calculate_average(scores);
int above_average = 0;
for (int score : scores)
if (score > average)
above_average++;
return above_average;
}
```
在这个程序中,用户连续输入成绩到一个数组里,然后调用`calculate_average`函数计算平均分,并通过`count_students_above_average`函数找出高于平均分的学生数量。
阅读全文