[완료] (초보) C언어로 구구단 짝수만 출력하는 프로그램에서 질문드립니다.
글쓴이: kuroneko / 작성시간: 수, 2012/06/20 - 10:17오후
#include <stdio.h>
int main()
{
int c=1, i=1;
while(1)
{
if(i>=10)
break;
if(i%2==1)
i++;
continue;
while(1)
{
if(c>i)
break;
printf("%dx%d=%d", c, i, c*i);
c++;
}
i++;
}
return 0;
}C언어 책에서 continue문과 break문 공부 중인데요,
이 두개를 이용해서 짝수 단을 출력하되 2단은 2x2까지만, 4단은 4x4까지, 6단은 6x6까지만, 8단은 8x8까지만 출력되는 프로그램을 만들어보라고 해서 다음과 같이 짜보았는데 컴파일해보니 아무것도 뜨지 않네요. 무엇이 잘못된 것일까요? 대략 조건에 맞추긴 한 것 같은데.. 어디서 오류가 났을까요?
Forums:


위의 소스를 보시면 if(i%2==1) 밑으로 괄호로
위의 소스를 보시면 if(i%2==1) 밑으로 괄호로 안 묶여있어서 i 변수의 값과 무관하게 무조건 continue가 실행되게 됩니다.
그래서 그 밑의 코드들은 모두 실행이 안됩니다.
중괄호가 빠졌군요.
if(i%2==1)
i++;
continue;
여기서 이렇게 바꿔줘야 됩니다.
if(i%2==1) {
i++;
continue;
}
명령이 한 줄인 경우는 중괄호를 생략해도 되지만 두 줄 이상이면 반드시 묶어줘야 합니다.
저 명령이 다음처럼 해석되기 때문에
if(i%2==1) {
i++;
}
continue;
printf문이 실행될 여지가 없는 거죠.
댓글 달기