반응형
#삼가형 #피라미드 #정삼각형
아래와 같은 피라미드 모양을 출력하는 프로그램을 작성해 보겠습니다.
이런 문제는 먼저 변하는 규칙을 찾아내고, 이 규칙을 반복문을 이용해서 표현을 하면 됩니다.
1. 규칙 찾기
이해하기 쉽도록 그림으로 표현해 보겠습니다.
1행에서 별 1개, 2행에서 별 3개, 3행에서 별 5개, ...
이런 식을 생각할 수 있어야 합니다.
행번호 * 2 - 1 |
이런 계산식을 쉽게 만들 수 있다면 컴퓨터 프로그램을 잘 할 수 있습니다.
2. 규칙을 프로그램 코드로 표현하기
반복문 for를 이용해서 코딩을 하면 다음과 같습니다.
#include <stdio.h>
int main()
{
int i, j;
for (i = 1; i <= 5; i++)
{
for (j = 0; j < 5-i; j++)
printf(" ");
for (j = 0; j <i*2-1; j++)
printf("*");
printf("\n");
}
return 0;
}
(Output)
3. 코드 수정
이번에는 5줄이 아니라, 입력받은 수 만큼의 행을 출력하도록 코드를 수정해 보겠습니다.
위 코드 중에서 숫자 5가 출력되는 행의 수입니다. 이 값을 입력 받은 값으로 변경하면 됩니다.
수정된 코드는 다음과 같습니다.
#define _CRT_SECURE_NO_WARNINGS // 비주얼스튜디오에서, scanf 함수 때문에 필요
#include <stdio.h>
int main()
{
int i, j;
int n; // 변수 n을 선언
printf("몇 행을 출력할까요? ");
scanf("%d", &n); // 입력 받은 값을 n에 저장
for (i = 1; i <= n; i++) // 5를 n으로 변경
{
for (j = 0; j < n-i; j++) // 5를 n으로 변경
printf(" ");
for (j = 0; j <i*2-1; j++)
printf("*");
printf("\n");
}
return 0;
}
(Output)
반응형
'C_C++' 카테고리의 다른 글
10진수를 2진수로 표현하는 방법 (0) | 2022.10.22 |
---|---|
(C언어) 섭씨온도 ↔ 화씨온도 변환하기 (0) | 2022.10.22 |
(C언어) 직각삼각형 모양 만들기 (0) | 2022.10.22 |
(C언어) 약수 구하기 (0) | 2022.10.21 |
(C언어) 최대공약수 최소공배수 구하기 GCM LCM (0) | 2022.10.21 |