用于检查递增排序数组的递归函数 [英] Recursive function to check ascendingly sorted array
本文介绍了用于检查递增排序数组的递归函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
该程序应该是一个递归函数来检查升序排序的数组
这是我的试用但程序运行不好它应该打印1,而是打印-1!< br $> b $ b
我的尝试:
the program is supposed to be a recursive function to check ascendingly sorted array
here's my trial but the program doesn't run well it's supposed to print 1 ,instead, it prints -1!
What I have tried:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int iss(int list[],int size)
{
if(*list > *(list+1)) return -1;
if(list==list+size-1) return 1;
return iss(list+1,size);
}
int main()
{ int arr[5]={1,1,5,6,7};
printf("%d",iss(arr,5));
return 0;
}
推荐答案
以下停止条件
引用:
f(list == list + size-1)return 1;
f(list==list+size-1) return 1;
有缺陷:如果,首先 iss
调用,(大小> 1)
然后它永远不会满足。
尝试改为
is flawed: if, at first iss
call, (size > 1)
then it can be never satisfied.
Try instead
int iss(int list[],int size)
{
if ( size == 0 ) return 1;
if(*list > *(list+1)) return -1;
return iss(list+1,size-1);
}
这篇关于用于检查递增排序数组的递归函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文