나도 잘하는 편은 아니지만 그냥 본 김에 답변해줄게
1. 문제가 뭔지 정확하게 설명 좀 해줘라....무슨 말인지 못 알아들어서 코드 보고 이해했어
"int arr[6][6]에서, 어떤 원소 arr[row][col]을 arr[col][6-col]로 옮기기" ← 이런 식으로
2. 두번째 출력에서 0만 나오는 이유
너의 "돌리는 과정"에 문제가 있었던 거야. arr[0][0], arr[0][1]...arr[5][5] 순서로 검사를 하고 값을 변경하지 ?
그런데 변경된 값을 똑같은 배열에 저장했으니, 변경된 값에 대해서 또 검사를 하고 그걸 또 변경하겠지 ?
결론부터 말하자면, 또 다른 배열 하나 만들어서 거기다가 집어넣는 게 제일 속편하다
3. "hilite.me" 사용해라
주소창에 hilite.me 쳐서 들어가봐.. 코드를 보기 좋게 편집해서 html 코드로 바꿔준다.
편집기에서 그냥 복붙해서 올려놓으면 가독성 ㅆㅎㅌㅊ라서 답변해줄 마음 싹 사라진다...ㄹㅇ루
4. source
<!-- HTML generated using hilite.me -->| 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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | int main() { int i = 0, j = 0, a[6][6] = { 0 }, b[6][6] = { 0 }; a[2][0] = 1; a[2][5] = 2; a[0][3] = 3; a[3][3] = 4; a[1][2] = 5; for (i = 0; i < 6; i++) //처음 그림 출력 { for (j = 0; j < 6; j++) { printf("%d", a[i][j]); } printf("\n"); } for (i = 0; i < 6; i++) //돌리는 과정 { for (j = 0; j < 6; j++) { if (a[i][j]) { b[j][6 - j] = a[i][j]; } } } printf("\n"); for (i = 0; i < 6; i++) { for (j = 0; j < 6; j++) { printf("%d", b[i][j]); } printf("\n"); } return 0; } |
※ 참고로, 중복되는 위치가 나와서 3이 사라지는 거 같은데 그건 뭐 알아서 해라
착함추
다음부턴 그렇게 올림 ㄳㄳ