读入n(1 <= n <= 1000)个学生的成绩,成绩都为整数,用指针函数求出若干个学生成绩的最高分。用数组名作为函数参数,指针作为函数返回值。
时间: 2024-05-03 15:18:50 浏览: 84
以下是代码实现:
```c
#include <stdio.h>
int* maxScore(int* arr, int n) {
int max = *arr; // 初始化最大值为数组的第一个元素
for (int i = 1; i < n; i++) {
if (*(arr + i) > max) {
max = *(arr + i);
}
}
return &max; // 返回指向最大值的指针
}
int main() {
int n;
printf("请输入学生人数:");
scanf("%d", &n);
int scores[n];
printf("请输入%d个学生成绩:", n);
for (int i = 0; i < n; i++) {
scanf("%d", &scores[i]);
}
int* max = maxScore(scores, n);
printf("最高分为:%d", *max);
return 0;
}
```
首先在 `main` 函数中读入学生人数和成绩,然后调用 `maxScore` 函数求出最高分。在 `maxScore` 函数中,我们初始化最大值为数组的第一个元素,然后遍历数组,如果有比当前最大值还要大的数,就更新最大值。最后返回指向最大值的指针。注意,返回的指针指向的是局部变量 `max`,因此在 `main` 函数中不能再使用这个指针。
阅读全文