9강 23:46

맨아래 printf("%d\n",count);에서 \n이 있어서
저는 출력값이 아래와 같을 줄 알았거든요
1
2
3
4
5
6
7
그런데 정답이 7이더라구요 왜 제가 생각한 것처럼 위와 같이 안 나온 건지 모르겠습니다
그리고 위와 같은 출력값이 나오려면 코드를 어떻게 써야 되는지도 궁금합니다
답변 2
0
안녕하세요, 만약 1, 2, 3, 4, 5, 6, 7 이렇게 count가 증가할 때마다 한 줄씩 찍고 싶으시면,
printf를 if문 안, count++ 바로 다음으로 옮기시면 됩니다.
#include <stdio.h>
int main() {
int i, j, count = 0;
for (i = 1; i < 5; i++) {
for (j = 1; j < 5; j++) {
if (i * j % 3 == 0) {
count++;
printf("%d\n", count); // 조건 만족할 때마다 바로 출력
}
}
}
return 0;
}이렇게 하면 조건(i * j % 3 == 0)을 만족할 때마다 그 순간의 count 값을 바로 출력하니까, 원하시던 대로
1
2
3
4
5
6
7가 출력됩니다. 핵심은 "printf가 반복문 안에 있는지, 밖에 있는지"예요. 반복문 밖에 있으면 최종 결과 딱 한 번만, 반복문 안(조건 만족 시점)에 있으면 그때그때 값이 출력됩니다.
0
안녕하세요, 인프런 AI 인턴입니다.
가보자고님이 올려주신 C 코드에서는 printf("%d\n", count); 문을 통해 count의 최종 값을 출력합니다. 이 라인의 \n은 단지 줄 바꿈을 의미할 뿐이며 count가 7이라는 최종 값이 한 번에 출력됩니다. 그래서 결과가 7로 출력되는 것입니다.
가보자고님이 원하시는대로 1부터 7까지의 각 숫자를 각각 따로 줄바꿈해서 출력하고 싶으시면, for 루프 안에서 printf를 사용하여 매번 조건이 참일 때마다 count 자체가 아닌 i * j 값이나 또는 매주기 때의 증가된 count 값을 출력하도록 수정해야 합니다. 예를 들어:
#include <stdio.h>
int main() {
int i, j, count = 0;
for (i = 1; i < 5; i++) {
for (j = 1; j < 5; j++) {
if (i * j % 3 == 0) {
count++;
printf("%d\n", count);
}
}
}
return 0;
}
이렇게 바꾸시면 매번 조건이 참일 때마다 count의 증가된 값을 출력하고, 결과는 1부터 7까지 각 줄에 하나씩 출력됩니다.
이미지 출처: 이미지 URL
배열 포인터 출력 표시
0
25
1
포인터 증감 또는 값 증감
0
23
1
배열 포인터 함수 관련
0
25
1
실기 이론 통합 요약본 버전
0
28
1
업캐스팅 3번 문제 예시
0
34
2
push pop 설명 되어있는 강의가 몇강인가요?
0
47
1
모의고사 파일오류
1
78
3
모의고사 다운
0
53
1
업캐스팅 원칙
0
66
2
6분46초
0
57
2
공략법
0
65
1
모의고사 파일과 이론파일 업데이트
1
75
3
이론 pdf 다운은 어디서 하나요?
0
72
2
13분 40초
0
66
2
정보처리기사 26년 실기 2회 네트워크 부분
0
78
2
기출문제 재탕
0
57
1
뻬먹은 코드
0
47
1
기출문제 재탕
0
37
0
모의고사1회 2번문제 뭔지 모르겠네요 강의올려주시면안될까요?
0
51
1
영상 다운로드는 안되나요?
0
81
1
26년2회 실기기출은 언제쯤...
0
127
2
이론 공부법 요약본 버전 업데이트 문의
0
110
2
정처기 필기 준비할때 이 이론을 다시 외워도 될까요?
0
115
2
조건 반복문 질문: for 문 ?
0
92
1





