一维数组 int score[10]存放了 10 个学生的成绩,用函数统计出平均分并返回其值,同时计算在平均分以上(含)的人数、最高分、最低分。10 人的分数在主函数中输入,函数中按要求统计出结果,函数返回平均分,人数、最高分、最低分用全局变量处理,所有结果在主函数中输出。数组用指针处理。函数定义: float ave_score(int *array, int n) { …… …… } 指针 array 指向数组的首地址,n 是学生人数。函数内部对数组元素的访问用指针处理。
时间: 2023-12-10 19:39:42 浏览: 92
下面是代码实现:
```c++
#include <iostream>
using namespace std;
int num_above_average = 0, max_score = 0, min_score = 100;
float average_score = 0;
float ave_score(int *array, int n) {
int sum = 0;
for (int i = 0; i < n; i++) {
sum += *(array + i);
if (*(array + i) >= average_score) {
num_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];
for (int i = 0; i < 10; i++) {
cin >> score[i];
}
average_score = ave_score(score, 10);
cout << "平均分:" << average_score << endl;
cout << "平均分以上(含)的人数:" << num_above_average << endl;
cout << "最高分:" << max_score << endl;
cout << "最低分:" << min_score << endl;
return 0;
}
```
在主函数中,先输入学生的分数,然后调用函数 `ave_score` 计算平均分并返回其值。在函数内部,使用指针访问数组中的元素,同时统计平均分以上(含)的人数、最高分、最低分。最后,在主函数中输出统计结果。
需要注意的是,由于需要在函数内部访问全局变量,因此需要在函数外部先定义这些变量。另外,为了方便,这里直接使用了数组名作为指针,实际上数组名也可以看做是指向数组首元素的指针。
阅读全文