原题没有问题。
int dec(int a[],int n)
      { if(n<=1) return 1;
        if(a[0]<a[1]) return 0;
        return dec(a+1,n-1);
      }
当然你的答案是也是正确的,不过考试的时候不会给分儿。

解决方案 »

  1.   

       问题真的没有错啊   你的好象错了   如果 a[]= {4,3,5}
       则 a[0] >= a[1] return 1;
       但是在 还有 a[1] < a[2] 却不能检测到了。
       所以不能用正确时返回,因为存在局部正确;只能在错误时返回或者结束时返回1。   
      

  2.   

    wilddragon(帅帅)的答案是错的
    正解:
    int dec(int a[],int n)
          { if(n<=1) return 0;
            if(a[0]<a[1]) return dec(a+1,n-1);
            return 1;
          }
      

  3.   

    to wilddragon:
                 比如:数组a为:1,2,0,5,3。当第一次调用dec()时,if(a[0]<a[1])即1<2
                 条件成立,则此时函数返回0,说明数组a递增,但事实上数组a并不是递增的!!
                 你的函数不就是得到了这样的结果了吗?