2016-07-08 7 views
-1

コンソールから値 '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); 

を書いた私は長さが等しくない配列になるだろう入力 'n'。誰も私にそれについていくつかのアドバイスを与えることができますか?ここ

コンソールからのすべての入力に対して出力: (第2行が作成された配列であることが想定される)

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 

任意のアイデア終わりに、なぜこれらの原因不明の数?

+1

タグ付き[C++] ==>動的配列に 'std :: vector'を使用します。 –

+2

'sizeof'はあなたが思っていることをしません。変数/型のサイズをバイト単位で返します。あなたのケースで - 32ビットビルドで4、64ビットで8。 –

答えて

0

Algirdas氏によると、SizeOfの機能を詳しく見てみましょう。また、あなたは本当にそれを必要としません。

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

あなたの配列に 'n'個の要素があるので、あなたはこのように動作させることができます。

また、ほとんどの教科書は実際に配列が好きですが、Cody Grayのアドバイスに従ってください。

関連する問題