题目描述 在主函数中读入一组数,编写函数,使用数组名或指针作为函数参数,返回该组数中的最大值。 输入 测试数据有多组,每组单独占一行,第一个数n表示该组数据的个数,后跟n个整数(1≤n≤100),数据之间由空格分隔。 输出 对于每组测试数据,输出结果占一行,为该组数中的最大值。 样例输入 复制 5 56 12 34 85 63 10 2 -4 -3 5 -6 5 6 74 8 20 样例输出 复制 85 74
时间: 2024-02-05 13:14:02 浏览: 66
以下是使用数组名作为函数参数的解法:
```c
#include <stdio.h>
int max(int arr[], int n) {
int max = arr[0];
for (int i = 1; i < n; i++) {
if (arr[i] > max) {
max = arr[i];
}
}
return max;
}
int main() {
int n, arr[100];
while (scanf("%d", &n) != EOF) {
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
printf("%d\n", max(arr, n));
}
return 0;
}
```
以下是使用指针作为函数参数的解法:
```c
#include <stdio.h>
int max(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, arr[100];
while (scanf("%d", &n) != EOF) {
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
printf("%d\n", max(arr, n));
}
return 0;
}
```
两种解法的区别在于函数参数的类型不同,函数实现方式相同。
阅读全文