2013-06-29 3 views
0

그래, 플립하고 인쇄해야하는 10x10 배열이 있습니다. 나는이 기능은 함수의 배열 값을 변경하십시오.

void flip(int d[][10], int rows) 
{ 
    int temp, x, y, cols; 

    cols=rows; 

    for(x=0; x<rows; x++) 
    { 
     for(y=0; y<cols; y++) 
     { 
      temp=d[x][y]; 
      d[x][y]=d[y][x]; 
      d[y][x]=temp 
     } 
    } 
} 

가 지금은 참조에 의해 전달되는 배열을 알고 있지만 나는 또한 당신이 바로 보인다 포인터 표기법을 사용하지 않아도 배열 자체가 포인터의 역할을 어디 선가 읽은 바로 그렇게 만들어. 내 문제는 그것을 뒤집은 후 인쇄하려고하면 뒤집힌 배열을 인쇄하지 않지만 원본 배열을 인쇄하여 원래 배열을 뒤집을 수 없다고 생각하게 만듭니다.

다음은 인쇄 기능입니다.

void printArray(int d[][10]) 
{ 
    int rows, cols,x,y; 

    rows = sizeof(d[0])/sizeof(d[0][0]); 

     cols = rows; 

    for(x=0;x<rows; x++) 
    { 
     for(y=0;y<cols;y++) 
      printf("%2d ",d[x][y]); 
     printf("\n"); 
    } 
} 

이상한 것은 내가 숫자 10와 같은 "하드"값으로 온도를 변경하는 경우, 그것은 그들이 10 초 인의 절반 10 × 10 배열을 인쇄 않습니다이다. 간단한 교환에 의해, 내가 무엇을 말할 수에서 :(

답변

2

를 작동하지 않는 이유가 여기에 딱하다 당신이 코드를 작업하는 경우, 또한 ... 당신은 "트랜스"을 의미

을 "플립" 수동으로 코드는 작동하지만 두 번 - 원래의 행렬을 얻습니다. 내부 루프를 변경하여 x이 아닌 0부터 시작하도록 할 수 있습니다.

+0

예 실제로 트랜스 포즈를 의미하며 시도해 볼 것입니다. 예, 감사했습니다. :) –

관련 문제