您的位置:首页 > 编程语言 > C语言/C++

C语言——用递归算法判断数组是否为一个递增数组

2016-12-14 21:47 253 查看
1.递归一定要有退出条件,否则将无限循环。

2.关于递归的返回值是要注意的。

下面列举两种方法,原理相同,递归判断。

方法1:

bool charge(int p[],int n)

{

static int m=0; //这个一定要定义为static,否则每次调用都是从0开始。

if(m == n-1)

return true;

else

{

if(p[m]<p[m+1])

{

m=m+1;

return charge(p,n); //最初是没有把charge(p,n)作为return语句,这样,我在内层递归结束,返回结果后,调用的程序不知道该怎么返回结果了。只有这样将内存递归结果做为返回值返回给上层,这样可以保证返回值结果是一致的,也是想要的。

}

else

return false;

}

}

int main()

{

int a[5]={1,2,3,5,4};

bool flag=false;

flag=charge(a,5);

if (flag)

printf("yes\n");

else

printf("false\n");

system("pause");

return 0;

}

方法2:

bool charge(int p[],int n)

{

if(n==1)

return true;

else

{

if(p[n-1]>p[n-2])

{

return charge(p,n-1);

}

else

return false;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: