C++ 为什么';这个代码不能正常工作吗?(C+;+;)

C++ 为什么';这个代码不能正常工作吗?(C+;+;),c++,C++,如果我输入此代码: #include<iostream> using namespace std; int main () { int input, qty, min, max; bool validity = 1; cout << "How many integers would you like to enter? \n"; cin >> qty; if (qty <= 0) cout << "Please enter a

如果我输入此代码:

#include<iostream>
using namespace std;
int main ()

{

int input, qty, min, max;
bool validity = 1;

cout << "How many integers would you like to enter? \n";
cin >> qty;

if (qty <= 0)
    cout << "Please enter a positive number\n";

else
{
    cout << "Please enter " << qty << " integers:" << endl;

    for (int x=0; x < qty; x++)
    {
        cin >> input;

        if (input > max)
            max = input;

        if (input < min)
            min = input;

    }

}


if (validity)
{
    cout << "Minimum: " << min << endl;
    cout << "Maximum: " << max << endl;
}


return 0;
}
#包括
使用名称空间std;
int main()
{
整数输入,数量,最小值,最大值;
bool效度=1;
数量;

如果(QTy P>max and min是<强>未初始化>,则C++中的值可以是任何东西,除非在java中,基元是自动初始化为0。 一种修复方法是设置第一个标志,并设置输入的第一个值的最大值和最小值

bool first = true;
for (int x=0; x < qty; x++)
{
    cin >> input;

    if( first )
    {
        max = input;
        min = input;
        first = false;
    }
    if (input > max)
        max = input;

    if (input < min)
        min = input;

}
bool first=true;
对于(int x=0;x>输入;
如果(第一)
{
最大值=输入;
最小值=输入;
第一个=假;
}
如果(输入>最大值)
最大值=输入;
如果(输入<分钟)
最小值=输入;
}
以下是我所说的未初始化的的意思。启动时,最小值和最大值可以是任何值。任何值都可以。在循环之前打印最小值和最大值,试试看。它应该(可以)每次运行程序时都会有所不同。基本上,该值取决于上次使用时该内存位置中的数据


因此,
if(input>max)
正在检查输入是否大于-20亿到20亿之间的某个随机数。(没有用)C++中的“<代码>第一个/代码>第一个标志,在for循环的第一次迭代中初始化<代码> min >代码> />代码> max >代码,或者用户输入的第一个值,它保证是输入值的最小值和最大值,因为它是唯一输入的值。

max和min是“强”未初始化的< /强>。ns值可以是任何值,除非在Java中原语自动初始化为0

一种修复方法是设置第一个标志,并设置输入的第一个值的最大值和最小值

bool first = true;
for (int x=0; x < qty; x++)
{
    cin >> input;

    if( first )
    {
        max = input;
        min = input;
        first = false;
    }
    if (input > max)
        max = input;

    if (input < min)
        min = input;

}
bool first=true;
对于(int x=0;x>输入;
如果(第一)
{
最大值=输入;
最小值=输入;
第一个=假;
}
如果(输入>最大值)
最大值=输入;
如果(输入<分钟)
最小值=输入;
}
以下是我所说的未初始化的的意思。启动时,最小值和最大值可以是任何值。任何值都可以。在循环之前打印最小值和最大值,试试看。它应该(可以)每次运行程序时都会有所不同。基本上,该值取决于上次使用时该内存位置中的数据


因此,
if(input>max)
正在检查输入是否大于-20亿到20亿之间的某个随机数。(没有用)。我放在那里的
first
标志在for循环的第一次迭代中初始化
min
/
max
,或者是用户输入的第一个值,这保证是输入值的最小值和最大值,因为它是唯一输入的值。

我得到了。谢谢!修复了:)WOTT!很高兴能帮助你。你也应该把卷轴{ }毕竟是语句,甚至是一个内衬。从长远来看,这将为你省去很多的麻烦。祝你好运!在C++中,这意味着这些值可以是任何东西。实际上,使用未初始化的变量是,所以任何事情都可能发生(包括崩溃等)。。通常编译器只使用存储在该内存位置的任何内容,但不应该依赖于此。谢谢。我会这么做。顺便说一句,我想知道你添加的内容到底是怎么回事。你能进一步解释吗?@Tinythebrotonosaurus你提供的描述真的应该重新编写到你的答案中。谢谢!修复了:)w00t!很高兴同时,你也应该把卷轴{ }全部放在语句中,甚至是一个内衬。从长远来看,这将为你省去很多麻烦。祝你好运!在C++中,这意味着值可以是任何东西。实际上,使用未初始化变量是,所以任何事情都可能发生(包括崩溃等)。。通常编译器只使用存储在该内存位置的任何内容,但不应该依赖于此。谢谢。我会这么做。顺便说一句,我想知道你添加的内容到底是怎么回事。你能进一步解释吗?@Tinythebrotonosaurus你提供的描述真的应该改写成你的答案。