我正在尝试创建一个程序,根据用户输入打印出一个数组。数组需要从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/