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

kakajenifer 2003-08-25 02:28:34
某例题。
程序中只有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);
}
...全文
101 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
kakajenifer 2003-08-25
  • 打赏
  • 举报
回复
靠,高程书也出错啊??还是清华正版的啊?!倒··
kakajenifer 2003-08-25
  • 打赏
  • 举报
回复
咦,紫气居然在线啊??晕~~
好吧……我下了,886
njtu 2003-08-25
  • 打赏
  • 举报
回复
同意pengzhenwanli(紫气日盈)
pengzhenwanli 2003-08-25
  • 打赏
  • 举报
回复
程序我认为不对。
int dec(int a[],int n)
{
if(n<=1)return 1;
if (a[0]<a[1])return 0;
return dec(a+1,n-1);//如果数据的前两个元素符合要求,就返回了,不可能递归。
}
该为这样
int dec(int a[],int n)
{
if(n<=1)return 0;
if (a[0]>a[1]) return 1;
return dec(a+1,n-1);
}
gernal_dn 2003-08-25
  • 打赏
  • 举报
回复
int a[]与int *a是一样的。
pzeping2003 2003-08-25
  • 打赏
  • 举报
回复
同意!
ray00 2003-08-25
  • 打赏
  • 举报
回复
int dec(int a[],int n)
{
if (n<=1) return 1;
if *a<*(a+1) return 0; //这样写能懂了吧?
return dec(a+1,n-1);
}
先从前两个元素比起,a+1操作则将数组的头指针向后移一个进行比较。

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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