用c语言实现以下:题目描述 用分治法求一个整数序列中的最大值。 输入 输入有多行,第一行是一个整数n,表示后面有n行。从第二行开始的n行,每行包含用空格隔开的多个整数,第一个整数是m,表示本行后面还有m个用空格隔开整数。 输出 输出有多行,对应输入中从第二行开始,每一行中m个整数中的最大值。 样例输入 2 5 1 3 5 9 8 6 6 5 4 3 2 1 样例输出 9 6
时间: 2024-02-24 08:55:53 浏览: 61
以下是用C语言实现的代码:
```c
#include <stdio.h>
int max(int a, int b) {
return a > b ? a : b;
}
int max_in_array(int *arr, int n) {
if (n == 1) {
return arr[0];
}
int mid = n / 2;
int max_left = max_in_array(arr, mid);
int max_right = max_in_array(arr + mid, n - mid);
return max(max_left, max_right);
}
int main() {
int n;
scanf("%d", &n);
for (int i = 0; i < n; i++) {
int m;
scanf("%d", &m);
int arr[m];
for (int j = 0; j < m; j++) {
scanf("%d", &arr[j]);
}
int max_num = max_in_array(arr, m);
printf("%d\n", max_num);
}
return 0;
}
```
运行结果:
输入:
```
2
5 1 3 5 9 8
6 6 5 4 3 2 1
```
输出:
```
9
6
```
阅读全文