Computer >> 컴퓨터 >  >> 프로그래밍 >> C 프로그래밍

C 언어로 하트 모양 패턴 출력하기

이번 프로그램에서는 C 언어를 사용하여 하트 모양 패턴을 출력하는 방법을 알아보겠습니다. 최종적으로 완성되는 하트 패턴은 다음과 같습니다.

C 언어로 하트 모양 패턴 출력하기

패턴 분석하기

패턴을 자세히 분석해 보면, 전체를 몇 개의 구역으로 나누어 생각할 수 있습니다.

  • 하트의 밑부분: 역삼각형 형태로 이루어져 있습니다.
  • 하트의 윗부분: 서로 다른 크기의 두 개의 봉우리(곡선 꼭대기)가 있습니다.
  • 봉우리 사이: 두 봉우리 사이에는 공백이 존재합니다.

따라서 이 패턴을 완성하려면 각 구역을 담당하는 반복문을 코드 안에서 적절히 배치하고 조합해야 합니다. 아래 예제 코드에서는 중첩 for문을 활용하여 공백과 별(*)의 개수를 단계별로 제어함으로써 원하는 모양을 만들어냅니다.

예제 코드

#include<stdio.h>
int main() {
   int a, b, line = 12;
   for (a = line/2; a <= line; a = a+2) { //하트의 윗부분
      for (b = 1; b < line-a; b = b+2) //첫 번째 봉우리 앞에 공백 생성
         printf(" ");
      for (b = 1; b <= a; b++) //첫 번째 봉우리 출력
         printf("*");
      for (b = 1; b <= line-a; b++) //두 봉우리 사이 공백 생성
         printf(" ");
      for (b = 1; b <= a-1; b++) //두 번째 봉우리 출력
         printf("*");
      printf("
");
   }
   for (a = line; a >= 0; a--) { //하트의 밑부분은 역삼각형
      for (b = a; b < line; b++) //삼각형 앞에 공백 생성
         printf(" ");
      for (b = 1; b <= ((a * 2) - 1); b++) //삼각형 출력
         printf("*");
      printf("
");
   }
}

코드 동작 원리

윗부분 루프는 line/2부터 시작하여 2씩 증가하면서 좌우 대칭의 두 봉우리를 그립니다. 첫 번째 내부 루프는 왼쪽 여백을 만들고, 두 번째와 네 번째 루프가 각각 별을 출력하여 봉우리를 형성하며, 세 번째 루프는 두 봉우리 사이의 간격을 담당합니다.

밑부분 루프는 line부터 0까지 감소하면서 별의 개수를 (a * 2) - 1개씩 줄여가며 역삼각형을 완성합니다. 이렇게 하면 자연스럽게 하트의 곡선 아래쪽이 뾰족하게 수렴하는 형태가 됩니다.

실행 결과

C 언어로 하트 모양 패턴 출력하기