• 九度oj 题目1185:特殊排序


    题目描述:

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

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

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

    这道题描述不是很明确,将此值从数组中去除,是指去除一个值,而不是都去除。

     1 #include <cstdio>
     2 #include <cstdlib>
     3 #include <cstring>
     4 #include <string>
     5 #include <algorithm>
     6 
     7 #define MAX 1002
     8 
     9 int toDeal[MAX];
    10 
    11 int cmp(const void * a, const void *b) {
    12     int  at = *(int *)a;
    13     int  bt = *(int *)b;
    14     return at - bt;
    15 }
    16 int main(int argc, char const *argv[])
    17 {
    18     int n;
    19     while(scanf("%d",&n) != EOF) {
    20         for(int i = 0; i < n; i++) {
    21             scanf("%d",&toDeal[i]);
    22         }
    23         if(n == 1) {
    24             printf("%d
    ",toDeal[0]);
    25             printf("%d
    ",-1);
    26             continue;
    27         }
    28         qsort(toDeal, n, sizeof(int), cmp);
    29         
    30         
    31         printf("%d
    ",toDeal[n-1]);
    32         bool isOne = true;
    33         for(int i = 0; i < n-1; i++) {
    34             if(isOne) {
    35                 printf("%d",toDeal[i]);
    36                 isOne = false;
    37             }
    38             else {
    39                 printf(" %d",toDeal[i]);
    40             }
    41             
    42         }
    43         printf("
    ");
    44     }
    45     return 0;
    46 }
  • 相关阅读:
    聚合根、实体、值对象
    哀悼的CSS 把网站变成灰色
    Ubuntu13.04更换aptget源
    JS判断用户终端,跳转到不同的页面.
    分享一个使用的FireFox 截图插件小巧方便
    Linux 下面FireFox 看CCTV直播
    Ubuntu 11.10后 Guest账户禁用!
    修改Ubuntu的启动画面plymouth
    ubuntu开机自启动小键盘
    Linux 用cat做图片种子||Windows 用copy做图片种子
  • 原文地址:https://www.cnblogs.com/jasonJie/p/5689951.html
Copyright © 2020-2023  润新知