본문 바로가기

C_study

[C] 코딩도장 64 : 함수에서 배열 매개변수 사용하기

64.6 심사문제: 배열 매개변수 사용하기

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

void printReverse(int numArr[], int size) // 입력받은 값을 거꾸로 출력해야합니다
{
    for (int i = size - 1 ; i >= 0 ; i--) // 배열 요소의 개수만큼 반복해서 거꾸로 출력해줍니다
    {
        printf("%d ", numArr[i]);
    }
}

int main()
{
    int numArr[10];

    scanf("%d %d %d %d %d %d %d %d %d %d", 
        &numArr[0], &numArr[1], &numArr[2], &numArr[3], &numArr[4], 
        &numArr[5], &numArr[6], &numArr[7], &numArr[8], &numArr[9]
    );

    printReverse(numArr, sizeof(numArr) / sizeof(int));

    return 0;
}

64.7 심사문제: 전치행렬 만들기

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

void transpose(int (*m)[4], int size)
{
    int temparr[1][1]; // 바꿀 값을 넣어줄 임시 배열을 선언해줍니다

    for (int i = 0 ; i < size; i++) 
    {
        for (int j = 0; j < i ; j++) // j가 i와 같을 때는 바꾸지 않아도 되고, 클 때는 바꾼 값이 원래대로 돌아가므로 빼줍니다
        {
            temparr[0][0] = m[i][j];
            m[i][j] = m[j][i];
            m[j][i] = temparr[0][0];
        }
    }
}

int main()
{
    int matrix[4][4];

    scanf("%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d",
        &matrix[0][0], &matrix[0][1], &matrix[0][2], &matrix[0][3],
        &matrix[1][0], &matrix[1][1], &matrix[1][2], &matrix[1][3],
        &matrix[2][0], &matrix[2][1], &matrix[2][2], &matrix[2][3],
        &matrix[3][0], &matrix[3][1], &matrix[3][2], &matrix[3][3]
    );

    int n = sizeof(matrix[0]) / sizeof(int);

    transpose(matrix, n);

    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n; j++)

        {
            printf("%d ", matrix[i][j]);
        }

        printf("\n");
    }

    return 0;
}