学生的记录由学号和成绩组成,5名学生的数据已经在主函数中放入结构体数组中,要求编写函数fun,它的功能是:把指定分数范围内的学生人数由函数值返回。用指针作为函数参数。
时间: 2024-02-16 17:00:08 浏览: 63
好的,可以参考以下代码实现:
```cpp
#include <iostream>
using namespace std;
// 学生的数据结构体
struct Student {
int no; // 学号
int score; // 成绩
};
// 统计指定分数范围内学生人数的函数,参数为指向结构体数组和指定分数范围的指针
int fun(Student* stu, int* score_range) {
int count = 0;
for (int i = 0; i < 5; i++) {
if (stu[i].score >= score_range[0] && stu[i].score <= score_range[1]) {
count++;
}
}
return count;
}
int main() {
Student stu[5] = { { 1, 80 }, { 2, 70 }, { 3, 85 }, { 4, 90 }, { 5, 75 } };
int score_range[2] = { 70, 85 };
int* ptr_score_range = score_range; // 将数组名转换为指针
int count = fun(stu, ptr_score_range);
cout << "指定分数范围内的学生人数为:" << count << endl;
return 0;
}
```
在主函数中,我们首先定义了一个结构体数组 `stu` 存储5名学生的学号和成绩,然后将数组名转换为指向结构体数组的指针 `ptr_stu`。接着定义一个数组 `score_range` 存储指定分数范围,将数组名转换为指向数组的指针 `ptr_score_range`,并将两个指针作为参数传递给函数 `fun`。函数内部使用循环遍历结构体数组,统计指定分数范围内的学生人数,并将结果返回。最后在主函数中输出函数返回值即可。
阅读全文