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");
}
}