为了对军事体能进行摸底,需要知道最好成绩和最差成绩,请你用分治法实现两个查找函数,可快速找出最好成绩和最差成绩。
函数接口定义:
int max(int *a,int m,int n);
int min(int *a,int m,int n);
其中 max
和 min
函数分别用于求出最大成绩和最差成绩。
裁判测试程序样
#include <stdio.h>
#define N 100
int max(int *a,int m,int n);
int min(int *a,int m,int n);
//注意采用分治法,不使用循环语句
int main()
{
int i, n,a[N],max_val,min_val;
scanf ("%d", &n);
for(i=0;i<n;i++)
scanf ("%d", &a[i]);
max_val=max(a,0,n-1);
min_val=min(a,0,n-1);
printf("max=%d,min=%d", max_val,min_val);
return 0;
}
/* 请在这里填写答案 */
int max(int *a,int m,int n)
{
int mid,x,y;
mid=(m+n)/2;
if(m==n)
return a[m];
x=max(a,m,mid);
y=max(a,mid+1,n);
if(x>y)
return x;
else
return y;
}
int min(int *a,int m,int n)
{
int mid,x,y;
mid=(m+n)/2;
if(m==n)
return a[m];
x=min(a,m,mid);
y=min(a,mid+1,n);
if(x>y)
return y;
else
return x;
}