2013-05-11 3 views
0

매트릭스의 대칭의 x 축에 따라 취할 수있는 함수가 필요합니다.x 축에 따라 설정하는 방법 매트릭스의 대칭

입력 (행렬 [I] [J])

1 2 3 
4 5 6 
7 8 9 

출력 (행렬 [I] [J])

7 8 9 
4 5 6 
1 2 3 

어떻게이 동일한 매트릭스합니까? 역기전은 어떻게 작성해야합니까? >

for(i = row - 1; i >= 0; i--) { 

그러나 당신이 원하는 경우에 실제로 데이터에 뭔가를 -

for(i = 0; i < row; i++) { 

:

이 특정 경우
void inverse(.......) 
{ 
.. 
.. 
.. 
} 

int main(){ 
int **matrix, i, j, k, row, column; 
cout << "Row and column:" ; 
cin >> row >> column; 
matrix = new int*[row]; 
for (i=0; i<row; ++i){ 
    matrix[i] = new int[column]; 
} 
cout << "input elements of matrix: " << endl; 
for(i=0; i<row; i++){ 
     for (j=0; j<column; j++){ 
      cin >> *(*(matrix+i)+j); 
     } 
} 

inverse (........); 

for(i=0; i<row; i++){ 
     for (j=0; j<column; j++){ 
      cout << *(*(matrix+i)+j); 
     } 
     cout << endl; 
} 
return 0; 
} 
+2

'역함수'라는 함수를 호출하는 것은 좋지 않습니다. –

+0

예, 아마도 그럴 겁니다. if 문을 사용하여 함수를 호출 할 것입니다. 예 : cout << 행렬의 역행렬을 원하십니까? ; 다른 (예) 통화 역함수 이 – sarikaya

+0

내가 표준 : : 벡터를 모르고 내가 – sarikaya

답변

0

, 당신은 뒤로 행렬을 인쇄하기 위해 루프를 수정할 수 있습니다 , 제 제안은 std::vector을 사용하기 위해이 코드를 리팩토링하는 것입니다.

std::vector<std::vector<int> > matrix(numberOfRows, std::vector<int>(numberOfColumns)); 
// You can use std::vector<std::valarray<int> > matrix; alternatively. 

그런 다음 단순히 STL 함수를 사용하여 플립 것 :

std::reverse(matrix.begin(), matrix.end()); 

편집 :
글쎄, 당신은 존재하고이를 위해 시간을 std::vector을 사용하지 않으려면 특별한 경우에, 당신이 무엇을 할 것인가는 다음과 같습니다 :

void flipMatrix(int** matrix, int rows, int columns) { 
    int middle = rows/2; // I expect it to truncate for an odd number of rows. 

    // Temporary row for swapping 
    int* tempRow; 

    for (int i = 0; i < middle; i++) { 
     // swap rows 
     tempRow = matrix[i]; 
     matrix[i] = matrix[rows - i - 1]; 
     matrix[rows - i - 1] = tempRow; 
    } 
} 
+0

를 호출하지 않는 경우 – sarikaya

+0

그런 그 것이다 :(없습니다? 무효 역 (INT 행을 INT 열) { 표준 :: str :: vector > :: iterator i = matrix.begin(); i! = matrix.end(); +에 대한 > 행렬의 벡터 > +0) { matrix.push_back (std :: vector (column)) std :: reverse (matrix.begin(), matrix.end()); }} – sarikaya

+0

아니요. 행렬을 초기화하는 데만 사용됩니다. –

관련 문제