#笔试题一则:

朋友的某公司笔试题,很简单,但是仓促之下居然出了不少BUG. 修正后的版本如下:

问题:

输入若干(不超过1000个)非负整数数字,请先取出为奇数的数字按从大到小排序,再取出偶数从小到大进行排序。

代码思路:

将输入的奇数偶数分别存储,分别排序。

实现:

//
//  main.cpp
//  Huawei
//
//  Created by adam on 6/16/15.
//  Copyright (c) 2015 WhiteKnight. All rights reserved.
//

#include<iostream>
#include<algorithm>
#include<vector>


using namespace std;

void print(int i);

int main()
{
    int tmp,i=0;
    vector<int> odd,even;

    //接收输入数据,最多1000个数据。
    cout<<"Ready, Input Negative Value to Finish"<<endl;
    while(cin>>tmp && i<1000 && tmp>=0)
    {
        if(1==tmp%2)
        {
            odd.push_back(tmp);
        }
        else
        {
            even.push_back(tmp);
        }
        i++;
    }

    //对奇数和偶数分别调用stl进行排序
    sort(odd.begin(),odd.end(),greater<int>());
    sort(even.begin(),even.end());


    //输出结果
    for_each(odd.begin(),odd.end(),print);
    for_each(even.begin(),even.end(),print);

    return 0;
}

void print(int i)
{
    cout<<i<<" ";
};

完整代码请见:
https://github.com/ColdZoo/yolo-bear

项目名称Huawei

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值