zoukankan      html  css  js  c++  java
  • 九度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 }
  • 相关阅读:
    c# 深拷贝与浅拷贝
    SQLServer性能优化 .net开发菜鸟总结
    Ajax自定义无刷新控件实现
    APScheduler库的详细用法
    catkin在centos中的安装
    第五次任务实现与项目总结第六组
    Javascript教程:获取当前地址栏url
    窗口处理问题
    HTML中area标签
    Asp.net中Frameset的使用小结
  • 原文地址:https://www.cnblogs.com/jasonJie/p/5689951.html
Copyright © 2011-2022 走看看