#笔试题一则:

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

问题:

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

代码思路:

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

实现:

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

#include
#include
#include


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"<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<" ";
};

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

项目名称Huawei

你可能感兴趣的:(数据结构与算法)