如何打印数组中的最大数字,然后将其移动到序列的末尾?

时间:2016-07-23 22:29:58

标签: c++ arrays

我写了一些代码,询问用户要输入多少个数字。然后程序打印出要求每个新行中的数字的语句数,然后在结尾打印出数组。如何打印最大的数字,然后在新行上打印最后一个数字的数组序列?像这样的东西:

您想输入多少个号码? 6

请输入数字1:10

请输入数字2:8

请输入数字3:3

请输入数字4:5

请输入数字5:2

请输入数字6:9

最大的数字是:10

新名单:8,3,5,2,9,10

到目前为止,这是我的代码:

#include <iostream>
#include <stdlib.h>

using namespace std;
int main ()
{
    int i, count = 0;
    int numArray[4000];

    cout << "How many numbers would you like to enter? : ";
    cin >> count;

    for (i = 0; i < count; i++)
    {
        cout << "Enter number " << i+1 << " : ";
        cin >> numArray[i];
    }


    //cout << "The largest number is: " << largestNumber << endl;
    cout << "New list: ";
    for (i=0; i< count; i++)
    {
        cout << numArray[i];
        if (i < count - 1)
            cout << ", ";
    }
    cout << endl;
    return 0;
}

2 个答案:

答案 0 :(得分:0)

在数组中找到大号:

int numArray[4000];
int count = 4000;

int largest = 0;
for (int i = 0; i < count; ++i)
{
    if (largest_temp < numArray[i]){
        largest = numArray[i];
    }
}

答案 1 :(得分:0)

首先,忘记固定大小的数组。没有任何意义,你可能会溢出。将int numArray[4000];替换为std::vector<int> numArray;,拥有#include <vector>,即可开箱即用。

您可以使用以下方法从矢量中获取最大元素:

auto largestNumberIt = std::max_element(numArray.begin(), numArray.end());
int largestNumber = *largestNumberIt;

您可以使用eraseremove从矢量中删除元素(它不清楚您要对重复项执行的操作)并将元素推送到numArray使用numArray.push_back(largestNumber);结束。