위의 소스코드에서 for(j = 2; j <= n-i; j++) 라는 식은
j 가 처음에 2이고 j가 n-i 일때 까지 돌고 끝나는 것이므로 총 (n-i-2+1) 번, 즉 n-i-1번 돌게됩니다.
그러나 j = 0 으로 하면 j 가 처음에 0으로 시작하는데 끝은 같으므로 j가 0일때와 1일때 두번 더도는것이고, 총 (n-i-0+1) 번, 즉 n-i+1 돌기때문에 for문 내의
빈칸을 출력하는 코드가 두번 더 실행돼서 각각의 행에서 맨앞에 빈칸이 두개씩 더 출력되어서 나오는 것입니다.
chj9739 7년 전
#include <stdio.h>
int main(void)
{
int i,j,k,n;
scanf("%d", &n);
for (i = 0; i < n; i++)
{
for (j = 2; j <= n-i; j++)
printf(" ");
for (k = 0; k <= i; k++)
printf("*");
printf("\n");
}
return 0;
}
코드를 이렇게 짰는데요 저기 j=2를 0으로 해주면 두칸 띄어서 출력되는데 왜 그런건가요??