Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 0에서 N-1까지의 정수를 포함하고 주대각선은 0만 포함해야 하는 N차의 대칭 행렬을 찾습니다.

<시간/>

여기에서 N차의 대칭 행렬 하나를 생성하는 방법을 살펴보고 각 행의 요소에는 0에서 N – 1 사이의 숫자가 포함됩니다. 대각선 요소는 항상 0입니다.

이 작업은 쉽습니다. N x N의 행렬을 형성한 다음 각 행 i와 각 열 j에 대해 i와 j가 같으면 0으로 표시하고 그렇지 않으면 하나의 카운터를 1에서 N – 1로 늘립니다. 각 개별 행에 대한 값을 배치합니다.

#include <iostream>
using namespace std;
void makeSymmetricMatrix(int n) {
   int matrix[n][n];
   for(int i = 0; i<n; i++){
      int count = 1;
      for(int j = 0; j <n; j++){
         if(i == j){
            matrix[i][j] = 0;
         }else{
            matrix[i][j] = count++;
         }
      }
   }
   for(int i = 0; i<n; i++){
      for(int j = 0; j <n; j++){
         cout << matrix[i][j] << " ";
      }
      cout << endl;
   }
}
int main() {
   int n = 5;
   makeSymmetricMatrix(n);
}

출력

0 1 2 3 4
1 0 2 3 4
1 2 0 3 4
1 2 3 0 4
1 2 3 4 0