문제
내가 작성한 코드
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>
int main() {
int n; //배열의 크기
scanf("%d", &n);
//배열 입력
int num[n][n];
for(int i = 0; i<n; i++){
for(int j = 0; j<n; j++){
scanf("%d", &num[i][j]);
}
}
int (*ptr)[n] = num; //포인터에 연결
int i = n-1;
int j = n-1;
//거꾸로 출력하는 코드
while(1){
printf("%d ", *(*(ptr+i)+j));
j--;
if(j < 0){ //한 줄 다 출력했을 경우
i--; //윗줄로 이동
j = n-1; //j 다시 끝으로 이동
}
if(i<0){ //출력 완료일 경우
break;
}
}
printf("\n");
return 0;
}
거꾸로 index 처리 주의
'C언어 > 주차별 문제' 카테고리의 다른 글
[11주차] 배열의 최소값 모두 더하기 (0) | 2023.06.08 |
---|---|
[10주차] 2차원 배열 정렬 (0) | 2023.06.06 |
[10주차] 포인터를 이용하여 배열의 값 변경하기 (0) | 2023.06.06 |
[10주차] 배열의 Swap (0) | 2023.06.06 |
[10주차] 이중포인터를 이용한 최솟값, 최댓값 구하기 (0) | 2023.06.06 |