我不知道如何对正数和负数进行排序

时间:2016-06-01 00:58:07

标签: c++ sorting

sudo phpenmod mbstring

我一直在查看这里的代码,但它们都包含了我尚未在C ++中学到的东西,我需要这样做才能将正数放在A部分中,将负数放在B中,并且按顺序再次显示它们。我该怎么做?

3 个答案:

答案 0 :(得分:0)

你可以包括然后使用sort函数。在sort函数中,您可以编写排序方法,也可以使用greater()作为排序方法

答案 1 :(得分:0)

j变量未在

中初始化
if (j > 0)
{
    cout << "A: "<<endl;
}
else if (j < 0)
{
    cout << "B: "<<endl;
}

它与用于j循环的for不同,因为这些循环在int}中声明。

小心只使用初始化变量。

此外,我认为您只需要使用fori进行另一个j循环,以检查数组的每个元素是正数还是负数(零元素怎么样?)。

答案 2 :(得分:0)

首先,你明白你的循环运行了6次并且一直要求输入数字,直到你输入36个输入。

我建议使用1D数组而不是2D数组。如果可以,请减少数量,或者在用户认为足够时添加停止输入的功能。您可以使用if条件轻松完成此操作。

无论如何只是为了让你的代码做它想做的事情(如果我得到了正确的话),

 #include <iostream>
using namespace std;

int main ()
{
    int A[2][2], i, j, k, max, min;
    for (int i=0; i<2; i++)
    {
        cout << "Enter a number: "<<endl;
        for (int j=0; j<2; j++)
        {
            cin >> A[i][j];
        }
    }
    for (int i=0; i<2; i++)
    {
        for (int j=0; j<2; j++)
        {
            if (A[i][j] > 0)
    {
        cout << "A: " << A[i][j] <<endl;
    }
    else if (A[i][j] < 0)
    {
        cout << "B: "<< A[i][j] <<endl;
    }
        }

    }

    cin.get();
    char ch1;
    cin>>ch1;
    return 0;
}

您可以像这样更改最后一个for循环。我已经将数组大小更改为2,因为我无法输入36个输入。您的代码出了什么问题,第二组for循环完成运行并打印所有数字然后它运行if语句,这又是不正确的,因为你正在检查j的值而不是检查你输入的数字。希望这会有所帮助。