해결된 질문
작성
·
264
·
수정됨
0
#include <stdio.h>
int main(void)
{
for (int i = 0; i < 5; ++i)
{
for (int j = 0; j < 5; ++j)
{
if (i + j < 4)
printf(" ");
else
printf("*");
}
printf("\n");
}
for (int i = 0; i < 5; ++i)
{
for (int j = 0; j < 9; ++j)
{
if (i + j < 5 || j - i > 5)
printf(" ");
else
printf("*");
}
printf("\n");
}
return 0;
}
이런 식으로 코드를 짰는데 제가 보기엔 제 코드에 문제가 없는데 삼각형 문제에서 출력 결과가 사진과 같이 나와요 i가 4이고 j가 8일 때 왜 "*"이 아닌 " "가 출력 되는지 모르겠어요.
답변 1
0
(i + j < 5 || j - i > 5) 식에서 i가 4고 j가 8이면
4 - 8 < 5는 true 입니다. 따라서 8 - 4 > 5 연산을 하기도 전에 조건을 만족(OR)합니다. 참고하시기 바랍니다. 😄