728x90
반응형

1. 거꾸로별 예시

*******
******
*****
****
***
**
*

int star, j;
for (j = 0; j < 7; j++)      
{
  for (star = 7; star > j; star--)   
{
  printf("*");

  printf("\n");
}

 혼자 거꾸로 별을 만들다가 생각보다 어려워서 곰곰히 생각하면서 하나 하나 침착히 이해하며 풀어봤다.
 ++ 의 개념이 순간 헷갈렸다. 조건이 성립하면! ++하라는 의미 그리고 하나씩 +되어 한개 다음엔 두개 다음엔 세개
 이런식으로 갯수가 늘어나는게 아니라 "줄바꿈"의 개념으로 생각해야한다.

 

2. 피라미드 예시

int floor;
printf("몇 층의 피라미드를 만들까요? \n");
scanf_s("%d", &floor);

for (int i = 0; i < floor; i++)
{
     for (int j = i ;  j < floor - 1; j++)            // 여기서 j = 0 으로 주는것과 j = i 로 주는것의 출력값이 다르다. 
      {
        printf(" s ");
      }
     for (int k = 0; k < i * 2 + 1; k++)
     {
       printf(" * ");
     }

printf("\n");
}

 

j= 0으로 주는것과 j=i 로주는것의 출력값이 다른 이유는

만약 floor를 5층으로 가정해본다.

j=0일경우 0,1,2,3,4 총 5개중 -1 을하여 4개의 s를 5번 출력하게 된다.

하지만 i일 경우 4,3,2,1 순으로 -1씩 빼서 출력이 된다.

 

 

이유는 0으로 주게되면 0,1,2,3,4 로 첫번째 반복문의 i와 따로 계산 조건이 돌아가게 되고

i로 주게되면 첫번째 반복문의 i와 연동되어 돌아가기 때문에 값이 다른 것이다.

코딩은 배울수록 아주 사소하고 간단한 개념과 원리가 아주 큰 차이를 만들어 낸다는 것. 

 

 

반응형

'C 언어' 카테고리의 다른 글

#7 and, or, rand, switch  (0) 2023.01.19
#6 if else, break, continue  (0) 2023.01.18
23年 1月 16일 마음에도 솔직해지는 용기  (0) 2023.01.16
#4 알고는 치자 !  (0) 2023.01.16
#3 이중 반복문 -2 (별피라미드)  (0) 2023.01.15