i는 줄바꿈, j는 *
의 개수
*
의 개수는 1개 --> 그 후 줄바꿈*
의 개수는 2개 --> 그 후 줄바꿈...*
의 개수는 2개 --> 그 후 줄바꿈...위 예시에서는 이해를 위해 i를 1부터 시작시켰지만, 아래 코드의 실제 동작은 0~4까지입니다.
#include <stdio.h>
int main(void)
{
for (int i = 0; i < 5; i++)
{
for (int j = 0; j <= i; j++)
{
printf("*");
// 1. i가 1이니 j가 한 번 밖에 못돔 --> *이 한개
// 2. i가 2니 j가 두 번 밖에 못돔 --> *이 두개
}
printf("\n"); // 줄바꿈
}
}
출력
*
**
***
****
*****
i는 줄바꿈, j는 공백의 개수 + *
의 개수, a는 층수
*
의 개수는 1개*
의 개수는 2개*
의 개수는 3개#include <stdio.h>
int main(void)
{
int a;
printf("Enter a number: ");
scanf_s("%d", &a);
for (int i = 0; i < a; i++) // a층만큼 쌓음
{
for (int j = i; j < a - 1; j++)
{
printf(" ");
// 1. j가 1이 되면 10층일때 j는 0 ~ 8, 9개까지
// 2. j가 2이 되면 10층일때 j는 1 ~ 8, 8개까지...
}
for (int j = 0; j <= i; j++)
{
printf("*"); // 얘는 그대로
}
printf("\n");
}
}
출력 (markdown 공백기호의 한계로 밀린것처럼 보이지만 실제로는 계단형입니다.)
*
**
***
****
*****
*
1칸, 공백 2칸*
3칸, 공백 1칸*
5칸공백은 층마다 1칸씩 줄어듬
*
은 층마다 2개씩 늘어남 --> 형태
#include <stdio.h> // standard input/output 이라는 뜻
int main(void)
{
int floor;
printf("층 수를 입력해주세요.");
scanf_s("%d", &floor);
for (int i = 0; i < floor; i++)
{
for (int j = i; j < floor - 1; j++)
// 5층 기준
// 1. i가 0일때는 0, 1, 2, 3 <-- 4개
// 2. i가 1일때는 1, 2, 3... <-- 3개
{
printf(" ");
}
for (int k = 0; k < i * 2 + 1; k++)
// 5층 기준
// 1. i가 0일때는 0 (0 < 1) <-- 1개
// 2. i가 1일때는 1 (0, 1, 2 < 3)... <-- 3개
{
printf("*");
}
printf("\n");
}
return 0;
}