c++ - 如何创建一个从 0 到用户输入的数组

标签 c++

我正在尝试创建一个程序,根据用户输入打印出一个数组。数组需要从0开始,缩放到用户输入的数字。因此,如果用户输入 5,则数组值将为 [0][1][2][3][4][5]。出于某种原因,我的代码只打印出 0。

#include <iostream>
using namespace std;

int main() {
cout << "Enter the value of n: ";
int n;
cin >> n;
int *arr1 = new int[n];

for(int i = 0; i < n; i ++){
    arr1[i] = 0;

}
cout << *arr1 << endl;

delete [] arr1;
return 0;
}

最佳答案

您的代码中几乎没有错误。

当 n = 5 时,您希望输出为 [0][1][2][3][4][5]。因此您的输出有 (n + 1) 个元素.所以你的数组也应该有 (n + 1) 个元素。

int *arr1 = new int[n + 1];

在您的代码中,您将 0 分配给数组中的每个元素。但是你希望数组包含 0, 1, 2, .., n

for(int i = 0; i < n + 1; i++){
  arr1[i] = i;
}

在您的代码中,您只打印第一个元素。 *arr1 与 arr1[0] 相同。因此需要另一个 for 循环来打印数组中的每个元素。

for(int i = 0; i < n + 1; i++){
  cout << "[" << arr1[i] << "]" << endl;
}

然后当 n = 5 时,您将得到输出 [0][1][2][3][4][5]

关于c++ - 如何创建一个从 0 到用户输入的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54779056/

相关文章:

c++ - 如何在不抽取 WM_PAINT 的情况下在 STA 中抽取 COM 消息?

c# - ASP.Net上的jpegoptim- “error opening temporary file”

c++ - 为什么在写入不够大的 malloc 内存时 strcpy "work"?

c++ - 有谁知道类似于 .Net 的 XML 文档的 C++ XML 解析器/编写器?

c# - 使用 .NET 4.0、3.5 时,UnmanagedFunctionPointer 会导致堆栈溢出

c++ - 与位域的 union 为位域成员提供了意想不到的值(value)

C++ 操作数类型不兼容 ("Movie"和 "nullptr")

c++ - 这种手动去虚拟化是否合法/可行?

c++ - 如何删除 VS 命令行开关

c++ - 具有扩展接口(interface)的派生类的集合。如何在没有动态转换的情况下访问派生接口(interface)?