第一个函数我怎么看不出是递归函数,因为在函数体中没有调用自身,应该这样写
int dec(int *a, int n)
{
if(n<=1)
{
if(a[1]>a[0])
return 0;
else
return 1;
}
if(a[n]>a[n-1])
return dec(a,n-1);
else
return 1;
}
int dec(int *a, int n)
{
if(n<=1)
{
if(a[1]>a[0])
return 0;
else
return 1;
}
if(a[n]>a[n-1])
return dec(a,n-1);
else
return 1;
}
int dec (int a[],int n)
{
if (n<=1) return 0;
if (a[n]<a[n-1]) return 1;
return dec(a,n-1);
}但它的题目归定了第二个IF名句,我觉得有问题。
不过你写的程序也有问题,在c中,数组是从0开始的,要是按你所写不会比较a[0]与a[1]的.可以这样做:
int dec(int a[],int n)
{
if(n<=1) return 0;
return (a[n-1]<=a[n-2])?1:(dec(a,n-1));
}
因为前n个数的下标是0至n-1的.