후위 연산자 질문입니다
페이지 정보
본문
int main() {
int std[]={43, 23, 54, 33};
int r;
for (int i=0;i<4;i++){
r=1;
for (int j=0;j<4;j++) --------- 1
if(std[i]<std[j]) --------- 2
r++; --------- 3
printf("%d, %d\n", std[i], r);
}
}
2에서 std[i] 값이 std[j] 의 값보다 작으면 3번 문장을 실행하고, 아니면 반복문의 시작인 1로 가는데
---------------------------------------------------------
| i | j | std[i] | std[j] | r | 출력 |
---------------------------------------------------------
| 0 | 0 | 43 | 43 | 1 | 43, 2 |
| | 1 | | 29 | 2 | |
| | 2 | | 54 | | |
| | 3 | | 33 | | |
( 생략 )
----------------------------------------------------------
결과 값을 보면 43, 2 가 나오는데
r++을 실행하는 곳이 어느 부분이 되는 건가요?
- 이전글Re: [문의] Java의 장점 21.07.09
- 다음글c 언어 질문입니다 21.07.08
댓글목록
kwlee2님의 댓글
kwlee2 작성일
printf("%d, %d\n", std[i], r);
부분을 아래와 같이 고쳐서 확인해보세요
#include <stdio.h>
int main() {
int std[]={43, 23, 54, 33};
int r, i, j;
for (i=0;i<4;i++) {
r=1;
for (j=0;j<4;j++) { // --------- 1
if(std[i]<std[j]) // --------- 2
r++; // --------- 3
printf("i:%d,j:%d, std[i]:%d, std[j]:%d, r:%d\n", i, j, std[i], std[j], r);
}
printf("%d, %d\n", std[i], r);
}
}