9강 23:46

맨아래 printf("%d\n",count);에서 \n이 있어서
저는 출력값이 아래와 같을 줄 알았거든요
1
2
3
4
5
6
7
그런데 정답이 7이더라구요 왜 제가 생각한 것처럼 위와 같이 안 나온 건지 모르겠습니다
그리고 위와 같은 출력값이 나오려면 코드를 어떻게 써야 되는지도 궁금합니다
Answer 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
조건 반복문 질문: for 문 ?
0
27
0
정처기 26-2회. 9번 질문드립니다!
0
51
1
이론 보면서 질문이 있습니다.
0
60
2
정보처리기사 실기 26년 2회 SRT 스케줄링 문제 단위 질문
0
62
2
유튜브(정보처리기사 실기 | 26년 2회 기출문제 코드 해설)
0
77
2
262 정처기 실기 C언어코딩
0
33
1
정보처리기사 262 실기 Hash(해시) 질문
0
64
2
static 변수 질문입니다.
0
47
2
파이썬 4강 질문입니다.
0
59
2
모의고사 1회 3번문제
0
76
3
41강 30:10
0
53
2
이론 공부법 질문 있습니다.
0
79
2
부모의 생성자 관련 질문
0
54
2
시험지 문제에 필기해도 되나요?
0
69
3
41강 11:23
0
49
2
4강파이썬 질문입니다
0
47
2
try-catch 핸들러명
0
58
2
36강 3:48
0
58
2
35강 18:27
0
55
2
자식 코드 내 super() 생략
0
51
2
출력질문
0
67
2
31강 4:06
0
58
2
파이썬 학습자료가 강의 자료와 다릅니다.
0
85
3
섹션 2 - 9강 강의자료 다운로드 문제
0
70
3

