一维数组 int score[10]存放了10个学生的成绩,用函数统计出平均分并返回其值,同时计算在平均分以上(含)的人数、最高分、最低分。10人的分数在主函数中输入,函数中按要求统计出结果,函数返回平均分,人数、最高分、最低分用全局变量处理,所有结果在主函数中输出。数组用指针处理
时间: 2024-01-24 09:17:10 浏览: 102
以下是代码实现:
```C++
#include <iostream>
using namespace std;
int num_above_avg = 0; // 在平均分以上的人数
int max_score = 0; // 最高分
int min_score = 100; // 最低分
float calculate_average(int* score, int size) {
int sum = 0;
for (int i = 0; i < size; i++) {
sum += *(score + i);
if (*(score + i) >= (sum / (i + 1))) {
num_above_avg++;
}
if (*(score + i) > max_score) {
max_score = *(score + i);
}
if (*(score + i) < min_score) {
min_score = *(score + i);
}
}
return ((float)sum / size);
}
int main() {
int size = 10;
int score[size];
cout << "请输入10个学生的成绩:";
for (int i = 0; i < size; i++) {
cin >> *(score + i);
}
float avg = calculate_average(score, size);
cout << "平均分:" << avg << endl;
cout << "平均分以上(含)的人数:" << num_above_avg << endl;
cout << "最高分:" << max_score << endl;
cout << "最低分:" << min_score << endl;
return 0;
}
```
其中,`calculate_average` 函数用于计算平均分,并统计在平均分以上(含)的人数、最高分和最低分。使用指针传递数组参数,可以简化函数参数的传递,同时也可以在函数内部修改全局变量的值。在主函数中,先读入学生的成绩,然后调用 `calculate_average` 函数计算出相关统计结果,并输出到屏幕上。
阅读全文