检查数组片段反转后是否有序

这是一个C语言实现的程序,用于检查数组中是否存在一个片段是逆序的。通过遍历数组找到可能的片段起点和终点,然后在片段内进行比较确定是否逆序。如果找到逆序片段,则返回0,表示不有序;否则返回1,表示有序。
摘要由CSDN通过智能技术生成

#include <stdio.h>


int pan_duan(int array[], int n)
{
    int i ,j, k;
    int head_pos = 0;
    int rear_pos = 0;
    for(i = 0; i < n-1; i++ )
    {
        
        if(array[i] > array[i+1])
        {
        
            head_pos = i;
            break;
        
        }
    
    }

    for(j = n-1; j > 0; j-- )
    {
        
        if(array[j-1] > array[j])
        {
        
            rear_pos = j;
            break;
        
        }
    
    }

    if(head_pos == rear_pos)
    {
    
        return 0;
    }

    for(k = head_pos; k < rear_pos; head_pos++ )
    {
            if(array[head_pos] < array[head_pos++])
            {
                return 0;
            }else
            {
                return 1;
            }
    }

    
}

int main(void)
{
    int array[4] = {1,2,4,3};


    int re = pan_duan(array,4);
    if(re)
    {
    
        printf("Yes");
    }else
    {
     
        printf("NO");
    }

 return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值