我试图获得向量中的最小数字,但是每次运行它时,我的代码都会输出000。

我试过在堆栈溢出时查看其他问题,但似乎其他人没有收到与我类似的错误。

    cout << "The smallest number is: ";
    for (i = 0; i < numberList.size(); ++i) {
        int smallest = numberList.at(0);
        if (numberList.at(i) < smallest) {
            smallest = numberList.at(i);
            }
        cout << smallest;
        }


当我输入3个数字时:1 2 3(作为单独的输入)
我得到最小的数字是:000

最佳答案

您声明最小并在循环内输出,因此它将在每次迭代中执行此操作,您可以在这里:

std::cout << "The smallest number is: ";
int smallest = numberList.at(0);
for (int i = 0; i < numberList.size(); ++i) {

    if (numberList.at(i) < smallest) {
        smallest = numberList.at(i);
    }

}
std::cout << smallest;


如果得到“ 0”,则向量在某处可能为0。但是您需要发布如何为此创建它。

另外,您也可以只使用numberList [i],不需要.at()。

关于c++ - 在 vector 中找到最小的数字,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58533308/

10-10 10:49