我试图通过从控制台获取值'n'来创建一个数组,并创建一个带有'n'的数组,然后再次使用值'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
为什么这些无法解释的数字到底有什么想法?
答案 0 :(得分:0)
正如Algirdas所说,仔细看看SizeOf的作用。而且,你真的不需要它。你可以这样工作:
{{1}}
你的阵列中有'n'个元素。
另外,我知道大多数教科书都非常喜欢数组,但请遵循Cody Gray的建议!