题解 | 有序序列判断

有序序列判断

http://www.nowcoder.com/practice/22e87f8a8d764a6582710f38d1b40c6e

标题有序序列判断

#include<stdio.h>
int main()
{
    int n = 0;
    int arr[50] = { 0 };//存放原序列
    int arr1[50] = { 0 };//存放升序列
    int arr2[50] = { 0 };//存放降序列
    scanf("%d", &n);//获取n
    for (int i = 0; i < n; i++)//将序列放入arr,arr1,arr2中
    {
        scanf("%d", &arr[i]);
        arr1[i] = arr[i];
        arr2[i] = arr[i];
    }
    //升序
    for (int i = 0; i < n - 1; i++)
    {
        if (arr1[i] > arr1[i + 1])
        {
            int tmp = arr1[i];
            arr1[i] = arr1[i + 1];
            arr1[i + 1] = tmp;
        }

    }
    //降序
    for (int i = 0; i < n - 1; i++)
    {
        if (arr2[i] < arr2[i + 1])
        {
            int tmp = arr2[i];
            arr2[i] = arr2[i + 1];
            arr2[i + 1] = tmp;
        }
    }
    //判断升序和降序之后的序列和原序列是否一致,一致则有序
    int i = 0;
    for (i = 0; i < n; i++)
        {
            if (arr[i] != arr1[i] && arr[i] != arr2[i])//arr,arr1,arr2对应元素都不同,
                                                       //则肯定无序
            {
                printf("unsorted\n");//打印
                break;               //并终止循环
            }
        }
        if (i == n)//如果在上面循环中找不到对应元素都不同的,则原序列有序
        {
            printf("sorted\n");
        }
    return 0;
}
全部评论

相关推荐

01-24 08:13
已编辑
合肥工业大学 Java
程序员牛肉:没啥问题。标准的流水线简历,但是学历好一点,所以应该是有约面的机会的。 这段时间可以考虑把自己的两个项目彻底的理一理。争取能够讲清楚每一个功能点
点赞 评论 收藏
分享
02-11 12:20
门头沟学院 Java
面试中的青提很胆小:我不信有比我们学校更逆天的,计算机专业就业第一位是我们学校二餐厅的打印店
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务