Dev C++ 提供一个输出,但 Visual Studio 代码为相同的代码提供另一个输出

时间:2021-04-06 22:22:13

标签: c++ visual-studio dev-c++

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

#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 个答案:

答案 0 :(得分:1)

试试这个解决方案。将变量 j 设为 1 并将 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";
}

相关问题