Dev C++ 给出了一个输出,但是 Visual studio code 给出了相同代码的另一个输出

Dev C++ gives one output, but Visual studio code gives another output for same code

Dev C++ 给出了一个输出,但是 Visual studio code 给出了相同代码的另一个输出 为什么会这样? 任何想法,可能是由不同的编译选项引起的,或者是这里代码中的一些错误。 询问您是否需要更多信息,我不知道为什么会这样。 如果这发生在这么小的代码上,那么大的代码会发生什么。

#include <iostream>
using namespace std;
int main() {
int line[10];
int i, j;
bool growing = false;
cout << "Input 10 numbers:\n";
for (i = 0; i < 10; i++ ) {
    cin >> line[i];
}
if (i >= 10) {
    for (j = 0; j < 10;) {

        if (line[j] < line[j + 1]) {
            growing= true;
            j++;
        }
        else {
            growing= false;
            j = 12;
        }

    }
}

if (j >= 10 && growing== false) {
    cout << "Not growing";
}
else if (j >= 10 && growing== true
) {
    cout << "Growing";
}

}

试试这个解决方案。从 1 开始变量 j 并将 line[j - 1]line[j] 进行比较。 j 在这种情况下最多为 9。

#include <iostream>
using namespace std;
int main()
{
    int line[10];
    bool growing = false;
    cout << "Input 10 numbers:\n";

    for (int i = 0; i < 9; i++)
    {
        cin >> line[i];
    }

    for (int j = 1; j < 10; j++)
    {

        if (line[j - 1] < line[j])
        {
            growing = true;
            continue; // start next iteration and skips line 22 and 23
        }
        growing = false;
        break; // stops the loop and moves to line 25
    }

    if (growing)
    {
        cout << "Growing";
    }
    else
    {
        cout << "Not Growing";
    }
}

或者更简单:

#include <iostream>
int main()
{
    const int size = 10;
    int line[size];

    for (int i = 0; i < size; i++)
    {
        std::cin >> line[i];
    }

    for (int i = 1; i < size; i++)
    {
        if (!(line[i - 1] < line[i]))
        {
            std::cout << "Not Growing\n";
            return 0;
        }
    }

    std::cout << "Growing";
}