c언어 do ~while문 간단한 질문입니다.
조회수 441회
문제 0이 입력될 때까지 계속 수행되는 프로그램으로 0이 아닌 정수값(n)에 대해 3으로 나머지 연산한 결과를 출력하시오
입니다. 그래서
#include <stdio.h>
int main()
{
int n;
do
{
scanf("%d",&n);
if(!n)
printf("%d % 3 = %d \n", n, n%3);
} while (n!=0)
return 0;
}
라고 우선 만들었습니다.
그런데 여기서 전 정수값(n)에 두 가지 조건을 넣으려고 합니다. 우선 n은 5로 지정, n은 >0 를 입력하고 싶습니다.(여기 문제에선 의미는 없겠지만 while문에 두 가지 조건을 넣으려면 어떻게 해야하는지 궁금해서 조건을 우선 넣었습니다.). 그리고 아래 반복문이 수행될 때 마다 1씩 줄어들게끔 짜려고 합니다.
#include <stdio.h>
int main()
{
int n=5;
do
{
scanf("%d",&n);
if(!n)
printf("%d % 3 = %d \n", n, n%3);
} while (n!=0, n>0)
n--;
return 0;
}
제 코드에 어떤 오류가 있는지 봐주실 수 있을까요? 감사합니다
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
1 답변
-
while (n!=0, n>0)
이거는 일단 문법이 맞지 않습니다. 다음이 문법 맞는 조건절일 겁니다.
while (n!=0 && n>0)
그나마도 잘 생각해 보시면
n > 0
일 때n != 0
은 항상 참입니다. 그러니 다음만 쓰시면 충분합니다.while (n > 0)
그리고
반복문이 수행될 때 마다 1씩 줄어들게끔
하시려면 아무래도
n--;
은do { ... }
안에서 실행되어야 할 것입니다. 그 바깥에서 실행되는 게 아니라요.이 정도만 반영해 보시면 일단 감은 오실 겁니다. 나머지는 행운을 빕니다.
댓글 입력