C언어/주차별 문제

[11주차] 배열 원소 swap

슈슈버거 2023. 6. 8. 21:47

문제


내가 작성한 코드

#include <stdio.h>
#define ARRAY_SIZE 5
void swap(int arr[][ARRAY_SIZE], int p1, int p2) //위치 바꾸는 함수
{
    int firsth = p1/5; //첫번째 값의 행
    int firstw = p1%5; //첫번째 값의 열
    int secondh = p2/5; //두번째 값의 행
    int secondw = p2%5; //두번째 값의 열
    int tmp = arr[firsth][firstw]; //임시 저장
    arr[firsth][firstw] = arr[secondh][secondw]; //첫번째 자리에 두번째 자리 값 저장
    arr[secondh][secondw] = tmp; //두번째 자리에 임시 값 저장
}

int main()
{
    int arr[ARRAY_SIZE][ARRAY_SIZE]; //배열 선언

    int p1;
    int p2;

    //입력 받기
    for (int i = 0; i < ARRAY_SIZE; i++)
    {
        for (int j=0; j < ARRAY_SIZE; j++)
        {
            scanf("%d", &arr[i][j]);
        }
    }

    scanf("%d %d", &p1, &p2);
	
    swap(arr, p1, p2); //함수 호출

    //바뀐 결과 출력
    for (int i = 0; i < ARRAY_SIZE; i++)
    {
        for (int j=0; j < ARRAY_SIZE; j++)
        {
            printf("%d ", arr[i][j]);
        }
        printf("\n");
    }
}