题目描述:读入n(1 <= n <= 1000)个学生的成绩,成绩都为整数,用指针函数求出若干个学生成绩的最高分。用数组名作为函数参数,指针作为函数返回值。编写c程序
时间: 2024-02-16 18:05:08 浏览: 79
好的,我很乐意为您解答这个问题。这是一个比较简单的指针函数例子,您可以参考下面的代码实现:
```c
#include <stdio.h>
int* get_max(int* scores, int n) {
int max_score = 0;
int* max_ptr = NULL;
for (int i = 0; i < n; i++) {
if (scores[i] > max_score) {
max_score = scores[i];
max_ptr = &scores[i];
}
}
return max_ptr;
}
int main() {
int n;
printf("请输入学生人数:");
scanf("%d", &n);
int scores[n];
printf("请输入学生成绩:");
for (int i = 0; i < n; i++) {
scanf("%d", &scores[i]);
}
int* max_score_ptr = get_max(scores, n);
printf("最高分为:%d\n", *max_score_ptr);
return 0;
}
```
首先,我们定义了一个指针函数 `get_max`,该函数接收一个整型数组指针和数组长度作为参数,返回一个指向最高分的指针。
在函数内部,我们定义了一个 `max_score` 变量用于存储当前找到的最高分,以及一个 `max_ptr` 指针变量用于存储指向最高分的指针。
然后,我们使用循环遍历整个数组,如果找到了比当前最高分更高的分数,就更新 `max_score` 和 `max_ptr`。
最后,我们在 `main` 函数中定义一个数组并读入学生成绩,然后调用 `get_max` 函数并打印出最高分。
希望这个例子能够帮助您更好地理解如何使用指针函数。
阅读全文