用递归实现判断数组是否递增:
如果数组长度为1,则数组为递增,返回True.
如果数组长度为n,则先比较最后两个元素是否递增,如果最后两个元素递增,则再递归比较去掉最后一个元素的最后两个元素,代码如下:
#include <stdio.h>
bool isincrease(int *a,int n)
{
if(n==1)
return 1;
return (a[n-1]>=a[n-2])&&isincrease(a,n-1);
}
int main()
{
int a[10]={1,2,3,4,5,16,7,8,9,10};
printf("%d\n",isincrease(a,10));
return 0;
}
在递归函数里用到了&&的短路技巧,如果a[n-1]>=a[n-2]不成立则返回0,否则继续比较去掉最后一个元素的最后两个元素之间的大小关系。