C语言:用减半递推法和递归求数组最大值。 5

#include<stdio.h>#defineN10intMAX(inta[],intp,intq){intm,n;if(p==q)m=a[p];else{m=MAX(... #include<stdio.h>
#define N 10
int MAX(int a[],int p,int q)
{
int m,n;

if(p==q) m=a[p];
else {
m=MAX(array,p,(p+q)/2);
n=MAX(array,(p+q)/2+1,q);
if(m<n) m=n;
}
return m;
}
main()
{int array[]={1,88,45,12,5,644,14,2,87,65} ,M;
M=MAX(array ,1,9);
printf("%d\n",M);
}
为什么显示我的array未申明???
展开
 我来答
kevin_sxw
2015-03-09 · TA获得超过165个赞
知道小有建树答主
回答量:80
采纳率:0%
帮助的人:36.2万
展开全部

在MAX函数里面你用到了array,但是array是你在main函数里面定义的局部变量,在MAX函数是不可见的,所以提示未声明,你的MAX函数应该修改为:

int MAX(int a[],int p,int q)
{  
int m,n;

if(p==q) m=a[p];
else {
m=MAX(a,p,(p+q)/2);
n=MAX(a,(p+q)/2+1,q);
if(m<n) m=n;
}
return m;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式