C ++中用户定义的数组问题

时间:2016-02-10 01:10:50

标签: c++ arrays

我正在尝试使用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;
}

2 个答案:

答案 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非常相似。它们是一种更高级别的集合,可以在向其添加更多元素时自行调整大小。