使用控制台中的值创建数组

Creating Array with values from console

本文关键字:创建 数组 控制台      更新时间:2023-10-16

>我正在尝试通过从控制台获取值"n"来创建数组,并创建一个带有"n"inits 的数组,然后再次获取值"r"来工作。

到目前为止我写了

int main(){
    int n = 0;
    cin >> n;
    int* a = new int[n];
    for(int i = 0; i< sizeof(a);i++){
       cin >> a[i];
    }
       for(int y = 0; y < sizeof(a);y++){
       cout << a[y] << " ";
       }
    int r = 0;
    cin >> r;
    rotate(a,r);

("cout"部分用于检查数组的输出)

但无论我尝试什么,我都会得到一个长度不等于输入"n"的数组。谁能给我一些建议?

以下是来自控制台的每个输入的输出:(第二行应该是创建的数组)

INPUT
6
1 2 3 4 5 6
3
OUTPUT
1 2 3 4 5 6 3 0 
INPUT
10
-1 -2 3 4 5 -6 7 -8 9 0
5
OUTPUT
-1 -2 3 4 5 -6 7 -8 
INPUT
1
1
1
OUTPUT
1 1 0 0 0 0 135137 0 

INPUT
5
1 2 3 4 5
5
OUTPUT
1 2 3 4 5 -3 135137 0 

任何想法为什么最后那些无法解释的数字?

正如Algirdas所说,仔细看看SizeOf是做什么的。另外,你并不真正需要它。你可以让它像这样工作:

for(int i = 0; i< n; i++){
   cin >> a[i];
}

因为数组中有"n"个元素。

另外,我知道大多数教科书都非常喜欢数组,但请遵循科迪格雷的建议!