输入若干个百分制成绩,直到输入负数为止,编写一段程序,统计出这些成绩的平均成绩和其中不及格人数,用循环结构
时间: 2024-12-11 10:17:20 浏览: 6
当然可以。要编写这个程序,你可以使用C++的`std::vector`存储分数,然后使用循环来读取分数并进行计算。当用户输入负数时,表示结束输入。以下是一个简单的示例:
```cpp
#include <iostream>
#include <vector>
using namespace std;
double calculateAverage(const vector<double>& scores) {
if (scores.empty()) {
return 0;
}
double sum = 0;
for (const auto& score : scores) {
sum += score;
}
return sum / scores.size();
}
int countFailures(const vector<double>& scores, double passingThreshold) {
int failures = 0;
for (const auto& score : scores) {
if (score < passingThreshold) {
failures++;
}
}
return failures;
}
int main() {
vector<double> scores;
double score;
const double PASSING_THRESHOLD = 60; // 假设及格线为60分
cout << "请输入百分制成绩(输入负数结束):" << endl;
while (cin >> score && score >= 0) {
scores.push_back(score);
}
if (!scores.empty()) {
double average = calculateAverage(scores);
int failures = countFailures(scores, PASSING_THRESHOLD);
cout << "平均成绩: " << average << endl;
cout << "不及格人数: " << failures << endl;
} else {
cout << "没有输入成绩。" << endl;
}
return 0;
}
```
在这个程序中,`calculateAverage`函数用于计算平均值,而`countFailures`函数则检查每个分数是否低于及格线。`main`函数负责接收用户输入并调用这两个函数。
阅读全文