利用一唯数组实现—从键盘上输入若干个学生成绩(小于等于20人),计算平均成绩,并统计低于平均分的学生成绩(保留2位小数)及人数,当输入负数时结束输入
时间: 2024-12-17 21:41:50 浏览: 8
要使用一维数组实现这个功能,我们可以按照以下步骤进行:
1. 定义一个足够大的动态数组 `scores` 来存储学生的成绩。
2. 使用循环来不断读取用户的输入直到输入负数为止。
3. 检查输入是否为负数,如果是则跳出循环,否则将成绩添加到数组中。
4. 计算平均分,遍历数组求总和除以学生总数。
5. 计算低于平均分的学生的成绩和数量。
以下是对应的C++代码示例:
```cpp
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
int n = 0;
double scores[20] = {0}; // 初始化一个最多能放20个元素的数组
double sum = 0.0, avg, low_score_sum = 0.0, low_count = 0;
cout << "请输入学生成绩(输入-1结束):" << endl;
while (true) {
cin >> scores[n];
if (scores[n] < 0) break; // 输入负数时退出
n++;
sum += scores[n - 1]; // 累加成绩
}
if (n > 0) {
avg = sum / n; // 计算平均分
for (int i = 0; i < n; i++) {
if (scores[i] < avg) {
low_score_sum += scores[i]; // 统计低分之和
low_count++; // 增加低分人数
}
}
cout << fixed << setprecision(2); // 设置输出两位小数
cout << "平均成绩:" << avg << endl;
cout << "低于平均分的总成绩:" << low_score_sum << ", 数量:" << low_count << endl;
} else {
cout << "没有输入任何成绩。" << endl;
}
return 0;
}
```
阅读全文