我正在尝试使用cin创建一个数组来定义大小。虽然这似乎有效(基于我现在的情况),但我想做的其他事情似乎都没有。
例如,我想使用for循环来查找数组中最小的int,因为我需要将它与数组中的所有其他int进行比较,但无论我在哪里返回最小的语句int,它不会这样做。
我做错了什么?
#include <iostream>
using namespace std;
int main(){
int userSize;
cout << "Please define size of array: ";
cin >> userSize;
int *duckArray = new int[userSize];
for (int i = 0; i < userSize; i++) {
cout << "Please enter a number into the array: ";
cin >> duckArray[i];
}
int smallest = duckArray[0];
for (int i = 0; i < userSize; i++){
if (duckArray[i] < smallest){
smallest = duckArray[i];
cout << smallest << endl;
}
}
//cout << smallest << endl;
return 0;
}
答案 0 :(得分:0)
如果您更改此代码,则代码正常运行:
for (int i = 0; i < userSize; i++){
if (duckArray[i] < smallest){
smallest = duckArray[i];
}
}
cout << smallest << endl;
这将找到并打印输入的最小数字。
答案 1 :(得分:-3)
C ++中的数组必须在运行时向编译器声明其大小。其他人将解释如何缓冲内存以模拟动态分配数组。您也可以使用给定大小的阵列,并且当用户添加和删除时,您可以拒绝当前大小的输入。
我强烈建议你研究Vectors。向量与Java中的ArrayLists
非常相似。它们是一种更高级别的集合,可以在向其添加更多元素时自行调整大小。