繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM