一维数组 int score[10]存放了 10 个学生的成绩,用函数统计出平均分并返回其值,同时计算在平均分以上(含)的人数、最高分、最低分。10 人的分数在主函数中输入,函数中按要求统计出结果,函数返回平均分,人数、最高分、最低分用全局变量处理,所有结果在主函数中输出。数组用指针处理。函数定义: float ave_score(int *array, int n) { …… …… } 指针 array 指向数组的首地址,n 是学生人数。函数内部对数组元素的访问用指针处理。
时间: 2023-12-10 07:38:41 浏览: 123
以下是代码实现:
```c++
#include <iostream>
using namespace std;
int above_average = 0; // 平均分以上(含)的人数
int max_score = 0; // 最高分
int min_score = 100; // 最低分
float ave_score(int *array, int n) {
int sum = 0;
for (int i = 0; i < n; i++) {
sum += *(array + i); // 用指针访问数组元素
if (*(array + i) >= 60) {
above_average++; // 统计平均分以上(含)的人数
}
if (*(array + i) > max_score) {
max_score = *(array + i); // 更新最高分
}
if (*(array + i) < min_score) {
min_score = *(array + i); // 更新最低分
}
}
return float(sum) / n; // 计算平均分并返回其值
}
int main() {
int score[10];
cout << "请输入 10 个学生的成绩:" << endl;
for (int i = 0; i < 10; i++) {
cin >> score[i];
}
float average = ave_score(score, 10);
cout << "平均分:" << average << endl;
cout << "平均分以上(含)的人数:" << above_average << endl;
cout << "最高分:" << max_score << endl;
cout << "最低分:" << min_score << endl;
return 0;
}
```
注意,这里没有使用全局变量,而是将统计结果作为函数外部变量传入函数中进行计算。
阅读全文