zoukankan      html  css  js  c++  java
  • OJ 1101 谁是中间的那个

    前言:主要考察排序用法 

    sort(cow+1,cow+1+n,cmp);//数组按cmp方法排序

    Description

    一天,农夫乔伊像往常一样来到了他的牧场,他突然对他的奶牛产奶量产生了兴趣。他想知道产奶量处于中间的那头奶牛的产奶量是多少,处于中间的意思是说,其中有一半牛的产奶量比它多,另一半牛的产奶量比它少。
    这个问题现在交由你来写程序完成!

    Input

    有多组测试数据,第一行一个正整数T(1<=T<=20),接下来T行,每行第一个正整数为奇数N不会超过10^5,接下来N数字代表第i(1<=i<=N)头牛的产奶量。

    Output

    输出产奶量处于中间的牛的产奶量。

    Sample Input

    1
    5 1 2 4 5 3

    Sample Output

    3

    //
    //  main.cpp
    //  CPlusDemo
    //
    //  Created by HF on 2018/5/15.
    //  Copyright © 2018年 HF-Liqun. All rights reserved.
    //
    
    #include <iostream>
    #include <algorithm>
    #include <cstdio>
    using  namespace std;
    
    typedef struct {
        int MakeMilk; //牛奶产量
        int  num;     //序号
    } COW;
    COW cow[100005];//正整数为奇数N不会超过10^5 即 N最大为 100000 + 5 (+5防止数组越界)
    //比较奶牛产奶量 降序
    bool cmp(COW A,COW B)
    {
        if (A.MakeMilk > B.MakeMilk) {
            return true;
        }
        if (A.MakeMilk == B.MakeMilk && A.num > B.num) {
            return true;
        }
        return false;
    }
    
    int main(int argc, const char * argv[]) {
        // insert code here...
        int t;
        int n;
        scanf("%d",&t);//一共t组数据
        while (t > 0) {
            scanf("%d",&n);
            for (int i = 1;i <= n; i ++) {
                scanf("%d",&cow[i].MakeMilk);
                cow[i].num = i;
            }
            //输入结束
            //排序开始
            sort(cow+1,cow+1+n,cmp);//从index区间[1,n]的集合进行排序
            printf("%d
    ",cow[(n+1)/2].MakeMilk);
            t --;
        }
        return 0;
    }
  • 相关阅读:
    MySql 学习之 一条更新sql的执行过程
    MySql 学习之 一条查询sql的执行过程
    VUE基本介绍
    ESMAScript6基本介绍
    npm
    tensorflow2.0 评估函数
    网页引入mathjax,latex
    Veno File Manager
    tensorflow 测量工具,与自定义训练
    tensorflow自定义网络结构
  • 原文地址:https://www.cnblogs.com/someonelikeyou/p/9043835.html
Copyright © 2011-2022 走看看