c语言用递归判断一个数组是递增还是递减

c语言用递归判断一个数组是递增还是递减,第1张

如果埋前中间有相等 3,2,1,1,1,1, 0 ,这不算降序,算无序了!!!

我重新优化了一下,虽改了一点点,但清神效率提高了很多;

#include "stdio.h"

int order(int dat[ ],int n)

//升序就输出return 1,降序输出-1,乱序输出0

{

int t=dat[1]-dat[0]

int r=t>0?1:(t<0?-1:0)

if (r==0||n<=2) // r==0 时,不管N多少,都不再递归下去,这大大优化了

return(r)

int r1=order(dat+1,n-1)

return (r1==r?r:0)

} // 这递归算法仅六行,够短的了 !!!!

main()

{

int dat[ ]={1,4,2,6}

printf("%d",order(dat,4))

}

我用C++BUILDER6试过了,我的递归弯正清是正确的

汗,你的数组里都不给出数据怎么去判含扮断,还n-1,n-1是御陵多少?

#include <stdio.h>

int main()

{

int a[]={1,2,3,4,5}

int i=0,m=0,n=0

if(a[i]>a[i+1])m++

else if(a[i]<a[i+1])n++

i++

if(i<sizeof a)main()//递规

if(m==0)printf("单调递减")

else if(n==0)printf("单调递增")

else printf("无增减性")

return 0

}

由于你没有给出数组的值,所以我假设了几个,你可以根据需要改变它的值。递规本就是死循环,要注意控制它的结束镇老戚!


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12288001.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-22
下一篇2023-05-22

发表评论

登录后才能评论

评论列表(0条)

    保存