zoukankan      html  css  js  c++  java
  • 九度OJ 1185:特殊排序 (排序)

    时间限制:1 秒

    内存限制:32 兆

    特殊判题:

    提交:15588

    解决:3592

    题目描述:

    输入一系列整数,将其中最大的数挑出,并将剩下的数进行排序。

    输入:
    输入第一行包括1个整数N,1<=N<=1000,代表输入数据的个数。
    接下来的一行有N个整数。
    输出:
    可能有多组测试数据,对于每组数据,
    第一行输出一个整数,代表N个整数中的最大值,并将此值从数组中去除,将剩下的数进行排序。
    第二行将排序的结果输出。
    样例输入:
    4
    1 3 4 2
    样例输出:
    4
    1 2 3
    提示:

    如果数组中只有一个数,当第一行将其输出后,第二行请输出"-1"。

    来源:
    2003-2005年华中科技大学计算机研究生机试真题

    思路:

    先排序再取出最大值。


    代码:

    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
     
    #define N 1000
     
    int cmp(const void *a, const void *b)
    {
        return *(int *)a - *(int *)b;
    }
     
    int main(void)
    {
        int n;
        int i;
        int a[N];
     
        while (scanf("%d", &n) != EOF)
        {
            for (i=0; i<n; i++)
                scanf("%d", &a[i]);
            qsort(a, n, sizeof(a[0]), cmp);
            printf("%d
    ", a[n-1]);
            if (n == 1)
                printf("-1
    ");
            else
            {
                for (i=0; i<n-2; i++)
                    printf("%d ", a[i]);
                printf("%d
    ", a[i]);
            }
        }
     
        return 0;
    }
    /**************************************************************
        Problem: 1185
        User: liangrx06
        Language: C
        Result: Accepted
        Time:30 ms
        Memory:912 kb
    ****************************************************************/


    编程算法爱好者。
  • 相关阅读:
    C# 桥接模式(Bridge)
    C# 中介者模式(Mediator)
    C# 命令模式(Command)
    C# 模板方法(TempleteMethod)
    C# 装饰模式(Decorate)
    C# 策略模式(Strategy)
    C# 职责链模式(Chain of Responsibility)
    C# 外观模式(Facade)
    C# 单例模式(Single)
    C# 原型模式(Prototype)
  • 原文地址:https://www.cnblogs.com/liangrx06/p/5083842.html
Copyright © 2011-2022 走看看