求【高手】详细耐心的解说:递归和递增——这段函数什么意思呀??

kakajenifer 2003-08-25 02:36:14
某例题。
程序中只有a[0] 和a[1]两个元素,而没有什么a[n]和a[n-1]的咚咚,仅靠着return里莫名其妙的那句dec(a+1,n-1)来实现递归??
可,这程序是什么意思呀??我还是没明白,高手解释一下呀。

--
递归函数dec(int a[],int n)判断数组a[]的前n个元素是否是不递增的。不递增返回1,否则返回0。


int dec(int a[],int n)
{
if(n<=1)return 1;
if (a[0]<a[1])return 0;
return dec(a+1,n-1);
}
...全文
56 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
kw816 2003-08-28
  • 打赏
  • 举报
回复
我认为上面的函数是错误码的,各位高手是不认同
应为:
int dec(int a[],int n)
{
if(n<=2)return 0;
if (a[0]<a[1]) return dec(a+1,n-1);
else return 1;
}
如果是上函数只要有一次a[0]<a[1]即结束调用,如果n<=1,最后会有a[n-1]<a[n]现象,
各位高手是否认同。
FLYing6339 2003-08-25
  • 打赏
  • 举报
回复

(a==1) ?
pzeping2003 2003-08-25
  • 打赏
  • 举报
回复
在主函数中如何调用?
是不是这样啊?
int a;
a=dec(*b,10);
if(a==1) cout<<"不是一个递增数组";


不好意思,我是初学者,请哪位指点
wangmin_yjitx 2003-08-25
  • 打赏
  • 举报
回复
记住dec(a+1,n-1);的含义:
进入该函数后a+1就是新数组的a[0],
搞清楚这个就知道这个递归函数的意思就是按顺序两两比较,一旦不符合递增就返回1,这样直到终止条件n<=1

2,947

社区成员

发帖
与我相关
我的任务
社区描述
就计算机等级考试、软件初、中、高级不同级别资格考试相关话题交流经验,共享资源。
c1认证c4javac4前端 技术论坛(原bbs)
社区管理员
  • 软件水平考试社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧