我试图获取向量中的最小数字,但是每次运行它时,我的代码都会输出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
答案 0 :(得分:1)
您要声明最小并在循环内输出,这样它将在每次迭代中都执行此操作,
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()。
答案 1 :(得分:1)
您可以使用std::min_element来实现您想要的功能。