inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

홍정모의 따라하며 배우는 C언어

6.15 중첩된 루프들에서 이해가 안되는 것이 있습니다

188

방승재

작성한 질문수 2

0

강의와 관련있는 질문을 남겨주세요.
• 강의와 관련이 없는 질문은 지식공유자가 답변하지 않을 수 있습니다. (사적 상담, 컨설팅, 과제 풀이 등)
• 질문을 남기기 전, 비슷한 내용을 질문한 수강생이 있는지 먼저 검색을 해주세요. (중복 질문을 자제해주세요.)
• 서비스 운영 관련 질문은 인프런 우측 하단 ‘문의하기’를 이용해주세요. (영상 재생 문제, 사이트 버그, 강의 환불 등)

질문 전달에도 요령이 필요합니다.
• 지식공유자가 질문을 좀 더 쉽게 확인할 수 있게 도와주세요.
• 강의실 페이지(/lecture) 에서 '질문하기'를 이용해주시면 질문과 연관된 수업 영상 제목이 함께 등록됩니다.
• 강의 대시보드에서 질문을 남길 경우, 관련 섹션 및 수업 제목을 기재해주세요. 
• 수업 특정 구간에 대한 질문은 꼭 영상 타임코드를 남겨주세요!

구체적인 질문일수록 명확한 답을 받을 수 있어요.

#include <stdio.h>

#define NUM_ROWS 12 

#define FIRST_CHAR 'A'

// #define LAST_CHAR 'L'

 

int main()

{

int r; // row loop

int c; // charcter loop

       for (r = 0; r < NUM_ROWS; ++r) // [out loop]  r=0 이고 0,1,2,3,4,5,6,7,8,9,10,11,12 값을 반복 하며

{

                 for (c = FIRST_CHAR + r; c < FIRST_CHAR + NUM_ROWS; ++c)  // [inner loop]

{

printf(" %c ", c);

 

}

printf("\n");

}

return 0;

}

이 반복문에서  for 2번째 inner loop에서  c < FIRST_CHAR + NUM_ROWS; 를 하는데 왜 알파벳이 줄어들면서 반복되는지 잘 이해가 안되네요  NUM_ROWS; 값은 12인데 

A B C D E F G H I J K L

B C D E F G H I J K L 

 C D E F G H I J K L

이렇게 줄어들면서 나오는 이유가 궁금합니다 

• 질문 제목은 핵심 키워드를 포함해 간결하게 적어주세요.
• 질문 내용은 자세하게 적어주시되, 지식공유자가 답변할 수 있도록 구체적으로 남겨주세요.
• 정확한 질문 내용과 함께 코드를 적어주시거나, 캡쳐 이미지를 첨부하면 더욱 좋습니다.

기본적인 예의를 지켜주세요.
• 정중한 의견 및 문의 제시, 감사 인사 등의 커뮤니케이션은 더 나은 강의를 위한 기틀이 됩니다. 
• 질문이 있을 때에는 강의를 만든 지식공유자에 대한 기본적인 예의를 꼭 지켜주세요. 
• 반말, 욕설, 과격한 표현 등 지식공유자를 불쾌하게 할 수 있는 내용은 스팸 처리 등 제재를 가할 수 있습니다. 

c

답변 1

0

안소

안녕하세요.

먼저 다음에 질문 주실 땐 연관된 강의에서 질문해주시기를 부탁드립니다. 😭 (예를 들어 현재 6.15 강의에 대한 질문이 있으신 것이니 6.15 강의의 질문하기 탭을 통해 작성해주시면 됩니다.)

각 행마다 시작 문자가 변하기 때문입니다. 

'FIRST_CHAR + r' 에 해당하는 문자부터 'FIRST_CHAR + NUM_ROWS' 문자까지를 매 행마다 출력을 하게 되는데 

 'FIRST_CHAR + NUM_ROWS' 은 'L' 로 고정되지만

'FIRST_CHAR + r'은 첫번째 for문에 의해 r 값이 매번 1씩 증가하게 되면서 첫 문자가 점점 증가하기 때문에 위와 같이 출력이 된 것입니다.

그래서 두번째 for문에 있는 c의 값은 두번째 for문 내에서 'A' 'B' .... 'L' 이렇게 점점 변화하게 됩니다.

그래서 'A'부터 'L' 까지 출력 / 그 다음 반복에선 'B'부터 'L'까지 출력 ... 이렇게 반복 되는 것입니다.

디버깅 해보시면서 어떻게 반복 진행이 되는지 차근차근 짚어보시는 것을 추천드립니다. 

Export template 안됨

1

193

2

완전히 똑같이 따라해도 exe파일이 안만들어져서 실행이 안됩니다.

1

251

3

main 함수에서 왜 int만 선언이 되는걸까요

1

166

2

8비트 2진수 변환시 왜 1을 더해야하나요?

1

175

2

혹시 강의를 빠르게 수강하려면 어디서부터 듣는게 좋을까요?

1

131

1

프로토타입과 함수간의 인자 불일치

1

151

2

12.12 헤더 관련 질문

1

134

2

Visual Studio Community 2026 사용 문의

1

277

2

Q. 15:30, 부호가 있는 8비트 정수 질문

1

121

2

getchar(), putchar()

1

167

3

강의자리ㅛ

1

137

2

비주얼스튜디오코드로 공부해도 상관없나요?

1

189

2

소스파일안에 여러 파일

1

133

2

F5와 F7의 차이

1

173

2

c = TWO * (a+b); 에서 a와 b는?

1

120

2

; 세미콜론을 붙이는 기준에 문의

1

127

1

Step over 기능 문의

1

130

2

2.6 강의 따옴표 출력 규칙 문의

1

129

2

int main 함수 관련 오류 문의

1

137

2

13.4 words[0]

0

108

2

11.7 함수를 구현해 봤습니다.

1

107

2

11.6 직접 strcmp와 strncmp를 구현해 보았습니다.

1

139

2

11.6 my_strcat과 my_strncat을 구현해봤습니다.

1

106

2

11.6 fit_str함수를 구현해 봤습니다.

1

104

2