반응형
2차원 행렬(matrix)에 대한 다음과 같은 함수를 작성하고 테스트하여 보라. 행렬의 크기는 3X3으로 가정하라.
(a)scalar_mult(int a[][3], int scalar)
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 | #include <stdio.h> # define SIZE 3 void scalar_mult(int a[][SIZE], int scalar); int main(void) { int a[SIZE][SIZE]={{1,2,3},{4,5,6},{7,8,9}}; int i,j,x; for(i=0;i<SIZE;i++) { for(j=0;j<SIZE;j++) printf("%d ", a[i][j]); printf("\n");} printf("곱할 정수를 입력하세요: "); scanf("%d", &x); scalar_mult(a,x); return 0; } void scalar_mult(int a[][SIZE], int scalar) { int i,j; for(i=0;i<SIZE;i++) for(j=0;j<SIZE;j++) a[i][j]=scalar*a[i][j]; for(i=0;i<SIZE;i++) { for(j=0;j<SIZE;j++) printf("%3d ", a[i][j]); printf("\n");} } | cs |
(b)transpose((int a[][3], int b[][3])
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 | #include <stdio.h> # define SIZE 3 void transpose(int a[][SIZE], int b[][SIZE]); int main(void) { int a[SIZE][SIZE]={{1,2,3},{4,5,6},{7,8,9}}; int b[SIZE][SIZE]={{0},{0},{0}}; int i,j; printf("전치전\n"); for(i=0;i<SIZE;i++) { for(j=0;j<SIZE;j++) printf("%d ", a[i][j]); printf("\n");} transpose(a,b); printf("전치후\n"); for(i=0;i<SIZE;i++) { for(j=0;j<SIZE;j++) printf("%d ", b[i][j]); printf("\n");} return 0; } void transpose(int a[][SIZE], int b[][SIZE]) { int i,j; for(i=0;i<SIZE;i++) for(j=0;j<SIZE;j++) b[j][i]=a[i][j]; } | cs |
반응형
'컴퓨터 & 프로그래밍 & 전자공학 > C언어' 카테고리의 다른 글
술에 취한 딱정벌레 (2) | 2016.08.13 |
---|---|
2진수 변환기 (0) | 2016.08.12 |
재고 관리 시스템 (0) | 2016.08.11 |
벡터 합 (0) | 2016.08.11 |
시험 점수 통계 처리 (0) | 2016.08.11 |