void asterisk(int a)
{
int i, j;
for (i=0;i<a;i++)
{
for(j=0;j<i+1;j++)
{
printf("*");
}
printf("\n");
}
}
int main(void)
{
int num;
printf("숫자 입력 ");
scanf("%d", &num);
asterisk(num);
return 0;
}
별을찍는 프로그램입니다. 조금 이해가 안가는부분이있어서요.
asterisk(ina)함수의 정의에서 for문에서 for (i=0;i<a;i++) 이부분은 메인함수 scanf에서 변수num으로
입력받은값을 asterisk(num);으로 함수를 호출하기때문에 예를들어 8을입력받으면
a가 8이되는건 알겠는데
i=0으로 초기화를했고 i가 a보다 클때까지 반복을하고 i를1씩증가시키면 i=0이니깐 0,1,2,3,4,5,6,7,8,9
i가 9가될때까지 총 10번이반복이 되어야하는거아닌가요?
그리고 for(j=0;j<i+1;j++)
{
printf("*");
}
printf("\n");
}
이부분을 어떻게 해야해야하는거죠?
j를 초기화했고 j보다 i+1이클때까지 반복을하고 j를1씩증가시킨다는건데
이해가안가는부분이 j<i+1 이부분입니다. j는 0이고 i는 0이므로 i+1은 1인데
그럼 1번 실행되면 j값은 1씩 증가되니깐 1이되고 조건은 j가 i+1보다 크지않으므로 한번더 실행되서
j가 2가되면 빠져나오는거아닌가요?
실행해보면 8을입력하면 별이 1개부터8개까지 찍히던데 왜 그런거죠?
for문이 어떤이유로 빠져나오는거죠?
고수분들 무지한 초보를위해 자세히좀 부탁드립니다..ㅜㅜ