读入n(1<=n<=1000)个学生的成绩,成绩都为整数,用指针函数求出若干个学生成绩的最高分。用数组名作为函数参数,指针作为函数返回值。
时间: 2024-05-11 16:17:26 浏览: 138
好的,这是一个简单的指针函数题目。以下是示例代码:
```c++
#include <iostream>
using namespace std;
int* maxScore(int* scores, int n) {
int max = 0;
for (int i = 0; i < n; i++) {
if (scores[i] > max) {
max = scores[i];
}
}
return &max;
}
int main() {
int n;
cout << "请输入学生人数:";
cin >> n;
int scores[n];
for (int i = 0; i < n; i++) {
cout << "请输入第" << i + 1 << "个学生的成绩:";
cin >> scores[i];
}
int* p = maxScore(scores, n);
cout << "最高分为:" << *p << endl;
return 0;
}
```
在这个例子中,我们定义了一个指针函数 `maxScore`,它接受一个整型数组 `scores` 和数组长度 `n` 作为参数,返回一个指向最高分的指针。
在 `maxScore` 函数中,我们使用一个变量 `max` 来保存当前最高分。我们遍历整个数组,如果找到了比当前最高分更高的分数,就更新 `max` 的值。
最后,我们返回指向 `max` 的指针。在 `main` 函数中,我们调用 `maxScore` 函数,并打印出结果。
需要注意的是,我们返回的指针指向的是一个局部变量 `max`,它的生命周期只在 `maxScore` 函数中。因此,在实际应用中,需要确保返回的指针指向的内存空间不会被释放。
阅读全文