用于检查递增排序数组的递归函数 [英] Recursive function to check ascendingly sorted array

查看:101
本文介绍了用于检查递增排序数组的递归函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

该程序应该是一个递归函数来检查升序排序的数组

这是我的试用但程序运行不好它应该打印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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆