37.4 연습문제 : 행렬의 주대각선 성분 구하기
다음 소스 코드를 완성하여 정사각행렬의 주대각선 성분이 출력되게 만드세요. 주대각선 성분은 왼쪽 위부터 오른쪽 아래까지 이어지는 대각선에 위치한 값을 말합니다.
practice_principal_diagonal_of_matrix.c
#include <stdio.h>
int main()
{
int matrix[8][8] = {
{ 1, 2, 3, 4, 5, 6, 7, 8 },
{ 9, 10, 11, 12, 13, 14, 15, 16 },
{ 17, 18, 19, 20, 21, 22, 23, 24 },
{ 25, 26, 27, 28, 29, 30, 31, 32 },
{ 33, 34, 35, 36, 37, 38, 39, 40 },
{ 41, 42, 43, 44, 45, 46, 47, 48 },
{ 49, 50, 51, 52, 53, 54, 55, 56 },
{ 57, 58, 59, 60, 61, 62, 63, 64 }
};
____________________________________________________________
...
____________________________________________________________
return 0;
}
실행결과
1 10 19 28 37 46 55 64
정답
for (int m = 0; m < sizeof(matrix) / sizeof(matrix[0]); m++)
{
printf("%d ", matrix[m][m]);
}
해설
먼저 행렬의 주대각선에 위치한 값들의 규칙을 살펴보면, 1 10 19 28 37 46 55 64의 행, 열 위치값은 서로 같으며 0부터 1씩 증가한다는 것을 알 수 있다.
따라서 반복문으로 행(m)을 출력하면서 배열의 세로 인덱스와 가로 인덱스에 m값을 넣어주면 된다(행렬의 세로 크기(행)는 배열이 차지하는 전체 공간을 가로 크기(열)로 나눠주면 된다).
출처
https://dojang.io/mod/page/view.php?id=314
Author And Source
이 문제에 관하여(37.4 연습문제 : 행렬의 주대각선 성분 구하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@shuajjjjj/37.4-연습문제-행렬의-주대각선-성분-구하기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)