帮我做道C++题:题目描述 给定 n n个元素,以及一个正整数 w w,求每段区间的最小最大值。这些区间为: [ 1 , 1 + w − 1 ] , [ 2 , 2 + w − 1 ] , . . . , [ n − w + 1 , n ] [1,1+w−1],[2,2+w−1],...,[n−w+1,n]。 例如 8 8个元素为 [ 1 3 − 1 − 3 5 3 6 7 ] [13−1−35367], w w为 3 3,那么有下列最小最大值: 输⼊格式 第一行输入 n , w n,w 第二行输入 n n个整数 输出格式 第一行输出区间最小值 第二行输出区间最大值
时间: 2023-02-08 08:59:49 浏览: 88
C++类型最大值与最小值
5星 · 资源好评率100%
下面是 C 语言代码实现:
```
#include <stdio.h>
#include <limits.h>
int main() {
int n, w, i;
scanf("%d %d", &n, &w);
int a[n];
for (i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
// 求最小值
printf("最小值:\n");
for (i = 0; i <= n - w; i++) {
int min = INT_MAX;
int j;
for (j = i; j < i + w; j++) {
if (a[j] < min) {
min = a[j];
}
}
printf("%d ", min);
}
printf("\n");
// 求最大值
printf("最大值:\n");
for (i = 0; i <= n - w; i++) {
int max = INT_MIN;
int j;
for (j = i; j < i + w; j++) {
if (a[j] > max) {
max = a[j];
}
}
printf("%d ", max);
}
return 0;
}
```
请注意,上面的代码没有考虑边界问题,如果输入数据不符合题目要求,可能会出错。
阅读全文