[英]Issue with user-defined array in C++
我正在尝试使用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;
}
如果您更改此代码,则代码正常工作:
for (int i = 0; i < userSize; i++){
if (duckArray[i] < smallest){
smallest = duckArray[i];
}
}
cout << smallest << endl;
这将查找并打印输入的最小数字。
C ++中的数组必须在运行时向编译器声明其大小。 其他人将解释如何缓冲内存以模拟动态分配的数组。 您还可以使用给定大小的Array,并且当用户添加和删除时,您可以拒绝当前大小以上的输入。
我强烈建议您研究Vectors 。 向量非常类似于Java中的ArrayLists
。 它们是高级集合的一种形式,当您向它们添加更多元素时,它们会自动调整大小。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.