我正在尝试创建一个程序,该程序根据用户输入打印出一个数组。数组需要从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;
}
答案 0 :(得分:1)
您的代码中几乎没有错误。
当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]