根据所给数据:{3056,1169,2743,1616,2391,930,968,1011,1386,936}, 输入一个区间,输出其区间最大的数据。 分数 30  全屏浏览题目 作者 fact 单位 上海交通大学 根据所给数据:{3056,1169,2743,1616,2391,930,968,1011,1386,936}, 输入一个区间,输出其区间最大的数据。 函数接口定义: 在这里描述函数接口。例如: int max(int *array,int start,int end); 裁判测试程序样例: 在这里给出函数被调用进行测试的例子。例如: #define N 10 #include <stdio.h> int max(int *array,int start,int end); int main() { int data[N]={3056,1169,2743,1616,2391,930,968,1011,1386,936}; int start=0,end=0,res=0; scanf("%d%d",&start,&end); if(start<=end) { res=max(data,start,end); printf("%d\n",res); } return 0; } /* 请在这里填写答案 */ 输入样例: 在这里给出一组输入。例如: 2 5 输出样例: 在这里给出相应的输出。例如: 2743
时间: 2023-09-20 08:03:05 浏览: 69
基于 .NET 5 + Ant Design Vue 的 Admin Fx.zip
根据题目描述,需要编写一个函数,给定一个数组、区间的起始和结束下标,返回该区间内的最大值。可以按照以下方式实现:
```c
int max(int *array, int start, int end) {
int max_val = array[start];
for (int i = start + 1; i <= end; i++) {
if (array[i] > max_val) {
max_val = array[i];
}
}
return max_val;
}
```
在 `main` 函数中,读入区间的起始和结束下标,判断起始下标是否小于等于结束下标,如果是,调用 `max` 函数计算区间最大值并输出即可。
完整代码如下:
```c
#include <stdio.h>
int max(int *array, int start, int end) {
int max_val = array[start];
for (int i = start + 1; i <= end; i++) {
if (array[i] > max_val) {
max_val = array[i];
}
}
return max_val;
}
int main() {
int data[10] = {3056, 1169, 2743, 1616, 2391, 930, 968, 1011, 1386, 936};
int start = 0, end = 0, res = 0;
scanf("%d%d", &start, &end);
if (start <= end) {
res = max(data, start, end);
printf("%d\n", res);
}
return 0;
}
```
阅读全文