2016-07-08 3 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); 

은 내가하는 길이 배열을 얻을 것입니다 시도

하지만 상관없이 동일하지 않습니다 (이하 "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 

어떤 아이디어 (두 번째 행은 어레이 생성 될 것으로 예상되는) 이유 끝에 해당 설명 할 수?

+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의 조언을 따르십시오!