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 |