게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
아아아 c언어좀.. 머리 빠개지겠네요 함수 미치겠네요 진짜..ㅜㅜ
게시물ID : programmer_10671짧은주소 복사하기
작성자 : 콩장
추천 : 0
조회수 : 430회
댓글수 : 9개
등록시간 : 2015/06/01 11:57:30
옵션
  • 본인삭제금지
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문이 어떤이유로 빠져나오는거죠?
       
고수분들 무지한 초보를위해 자세히좀 부탁드립니다..ㅜㅜ
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호