숫자 n이 주어졌을 때, 최대 n개의 별(*)로 구성된 화살표 모양 패턴을 출력하는 C 프로그램을 만들어 보겠습니다.
패턴 예시
입력값이 4일 때 출력되는 별 패턴은 다음과 같습니다.

입력 및 출력 예제
Input: 3 Output:

Input: 5 Output:

이 패턴은 크게 두 부분으로 나뉩니다. 위쪽 부분에서는 별의 개수가 n개부터 1개까지 줄어들면서 앞의 공백이 하나씩 늘어나고, 아래쪽 부분에서는 반대로 별의 개수가 다시 2개부터 n개까지 늘어나며 화살표 꼬리를 완성합니다.
접근 방법
- 정수 형태로 입력값을 받습니다.
- 먼저 n개의 공백과 n개의 별을 출력합니다.
- n이 1보다 클 때까지 개수를 줄여가며 출력합니다(화살표 위쪽 부분).
- 이후 다시 n까지 개수를 늘려가며 출력합니다(화살표 아래쪽 부분).
- 공백과 별을 점점 증가하는 순서로 출력해 마무리합니다.
알고리즘
시작
함수 int arrow(int num)
단계 1 -> 변수 i, j 선언 및 초기화
단계 2 -> 반복문 For i = 1, i <= num, i++
반복문 For j = i, j < num, j++
공백 출력
반복문 For j = i, j <= num, j++
"*" 출력
줄바꿈 출력
단계 3 -> 반복문 For i = 2, i <= num, i++
반복문 For j = 1, j < i, j++
공백 출력
반복문 For j = 1, j <= i, j++
"*" 출력
줄바꿈 출력
함수 int main()
단계 1 -> num = 4로 선언 및 초기화
단계 2 -> arrow(num) 호출C 언어 구현 예제
#include <stdio.h>
// 화살표 패턴 함수
int arrow(int num) {
int i, j;
// 화살표 위쪽 부분 출력
for (i = 1; i <= num; i++) {
// 공백 출력
for (j = i; j < num; j++) {
printf(" ");
}
// 패턴을 위한 * 출력
for (j = i; j <= num; j++) {
printf("*");
}
printf("\n");
}
// 화살표 아래쪽 부분 출력
for (i = 2; i <= num; i++) {
// 공백 출력
for (j = 1; j < i; j++) {
printf(" ");
}
// 패턴을 위한 * 출력
for (j = 1; j <= i; j++) {
printf("*");
}
printf("\n");
}
return 0;
}
int main() {
// 사용자로부터 값 입력받기
int num = 4;
// 함수 호출
arrow(num);
return 0;
}실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
