比较数组中的元素?

时间:2018-06-25 18:03:13

标签: c++

正如标题所述,我正在尝试比较数组中的元素。我的目的是让用户在程序中输入3个整数,此后它应该通过数组比较第一个数字和第二个数字,以此类推,依此类推,并将元素的顺序从最低到最高。

我目前的问题是它将交换第一个和第二个元素,但是第三个元素将导致整数溢出,这是由于我比较并分配了比初始化数组可以容纳的索引高的整数。

我目前在空白处仍无法以这种方式比较这些数字而不会引起溢出。

一个提示或完全不同的观点将不胜感激。

#include "E:/My Documents/Visual Studio 2017/std_lib_facilities.h"

int main()
{
        cout << "Enter three integers: \n";
        int numbersArray[3];
        int temp = 0; //This lets us hold our integers temporarily so we can swap them around in the array

    //This enters integers as elements in the array
    for (int i = 0; i < 3; i++)
    {
        cin >> numbersArray[i];
    }

    //This should swap the elements from smallest to greatest
    for (int i = 0; i = 3; i++)
    {
        if (numbersArray[i] > numbersArray[i+1])
            temp = numbersArray[i];
            numbersArray[i] = numbersArray[i+1];
            numbersArray[i+1] = temp;


            //swap(numbersArray[i], numbersArray[++i]);
    }


    //This prints the index's containing the elements in the array
    for (int i = 0; i < 3; i++)
    {
        cout << numbersArray[i] << ' ';
    }
    cout << endl;



    keep_window_open();
    return 0;

}

1 个答案:

答案 0 :(得分:0)

您将需要对其进行修改以适合您的需求,但这应该可以使您走上正确的道路。要调查的重要一件事是您决定如何对元素进行排序。您的排序需要循环,否则,您不必对整个数组进行排序(取决于您的输入)。

#include <iostream>
using namespace std;

int main()
{


    cout << "Enter three integers: \n";
    int numbersArray[3];
    int temp = 0; //This lets us hold our integers temporarily so we can swap them around in the array

    //This enters integers as elements in the array
    for (int i = 0; i < 3; i++)
    {
        cin >> numbersArray[i];
    }

    for(int loop = 0; loop <3; loop++){
        //This should swap the elements from smallest to greatest
        for (int i = 0; i < 2; i++)
        {
            if (numbersArray[i] > numbersArray[i+1]){
                temp = numbersArray[i];
                numbersArray[i] = numbersArray[i+1];
                numbersArray[i+1] = temp;

            }
                //swap(numbersArray[i], numbersArray[++i]);
        }
    }

    //This prints the index's containing the elements in the array
    for (int i = 0; i < 3; i++)
    {
        cout << numbersArray[i] << ' ';
    }
    cout << endl;


    return 0;

}