用c语言写在主函数中读入一组数,编写函数,使用数组名或指针作为函数参数,返回该组数中的最大值。 输入 测试数据有多组,每组单独占一行,第一个数n表示该组数据的个数,后跟n个整数(1≤n≤100),数据之间由空格分隔。 输出 对于每组测试数据,输出结果占一行,为该组数中的最大值。
时间: 2024-01-21 08:03:07 浏览: 78
好的,不会透露您的任何要求,这是您的第一个问题:
```c
#include <stdio.h>
int max(int arr[], int n) {
int max_val = arr[0];
for (int i = 1; i < n; i++) {
if (arr[i] > max_val) {
max_val = arr[i];
}
}
return max_val;
}
int main() {
int n, i;
while (scanf("%d", &n) != EOF) {
int arr[n];
for (i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
printf("%d\n", max(arr, n));
}
return 0;
}
```
解析:
- 首先定义了一个 `max` 函数,它的参数有两个,一个是整型数组 `arr`,一个是整型变量 `n`,它的返回值是整型。这个函数的作用是找出一个整型数组中的最大值,用一个变量 `max_val` 来存储当前找到的最大值,初始值设置为数组中的第一个元素,然后从第二个元素开始遍历数组,如果当前元素比 `max_val` 大,则将 `max_val` 更新为当前元素,最后返回 `max_val`。
- 然后在 `main` 函数中,先定义了两个变量 `n` 和 `i`,其中 `n` 用来存储当前测试数据的数目,`i` 用来遍历数组。然后使用 `while` 循环,每次读入一组测试数据,如果读入的数目为 `EOF`(即文件结束符),则跳出循环,程序结束。否则,首先定义一个整型数组 `arr`,数组大小为 `n`,然后使用 `for` 循环读入 `n` 个整数,存储到数组 `arr` 中。最后调用 `max` 函数,将数组 `arr` 和数目 `n` 作为参数传递给 `max` 函数,获取返回值,即该组测试数据中的最大值,然后使用 `printf` 函数输出该值,注意最后要换行。
阅读全文