반응형

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

+ Recent posts