C++ 输入一行未知个数的整数

最近笔试的时候,编程题遇到这样要求的输入,需要输入一行整数,个数未知,然后整数之间用空格间隔,如下所示:

11 22 333 45 62

代码如下所示:

int main()
{
    vector<int> inputs;
    int n = 0, k=0;
    int i;  
    cin >> i;
    inputs.push_back(i);
    while (cin.get() != '\n')   { 
        cin >> i; 
        inputs.push_back(i);
    }   

    system("pause");
    return 0;
}

更完整代码如下所示,编程题目是要求找到给定整数序列中第K个大的数字:

#include<iostream>
#include<vector>

using namespace std;
int find_k_max_nums(vector<int> array, int k){
    int res = 0;
    sort(array.begin(), array.end(), greater<int>());
    res = array[k - 1];
    return res;
}

int main()
{
    vector<int> inputs;
    int n = 0, k=0;
    int i;  
    cin >> i;
    inputs.push_back(i);
    while (cin.get() != '\n')   { 
        cin >> i; 
        inputs.push_back(i);
    }   
    cin >> k;

    int res = find_k_max_nums(inputs, k);
    printf("%d\n", res);


    system("pause");
    return 0;
}

结果如下:

这里写图片描述

猜你喜欢

转载自blog.csdn.net/lc013/article/details/77603310
今日推荐