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

C 언어로 정사각형 안에 정사각형 출력하는 프로그램

프로그램 개요

이 프로그램은 아래 그림과 같이 큰 정사각형 내부에 작은 정사각형을 함께 출력하는 C 언어 코드입니다. 이중 반복문과 조건문을 활용한 대표적인 패턴 출력 예제로, 별(*)이나 특수 문자(#)를 이용한 도형 그리기의 기본 원리를 익히기에 좋습니다.

C 언어로 정사각형 안에 정사각형 출력하는 프로그램

알고리즘

프로그램의 동작 흐름은 다음과 같습니다.

1. 바깥쪽 정사각형을 그릴 행(row)의 개수를 사용자로부터 입력받는다
2. 입력받은 행의 개수만큼 바깥쪽 정사각형을 화면에 출력한다
3. 바깥쪽 정사각형 내부에 또 다른 정사각형을 출력한다

예제 코드

/* Program to print Square inside Square */
#include <stdio.h>
int main()
{
    int r, c, rows;
    clrscr();
    printf("Enter the Number of rows to draw Square inside a Square: ");
    scanf("%d", &rows);
    printf("\n");
    for (r = 1; r <= rows; r++){
        for (c = 1; c <= rows; c++){
            if ((r == 1 || r == rows || c == 1 || c == rows) || (r >= 3 && r <= rows - 2 && c >= 3 && c <= rows - 2) && (r == 3 || r == rows - 2 || c == 3 || c == rows - 2)){
                printf("#");
            }
            else{
                printf(" ");
            }
        }
        printf("\n");
    }
    getch();
    return 0;
}

코드 동작 원리

핵심은 if 문의 조건식입니다. 조건은 두 부분으로 구성됩니다.

첫 번째 조건(r == 1 || r == rows || c == 1 || c == rows): 현재 위치가 바깥쪽 정사각형의 테두리(첫 번째 행·열 또는 마지막 행·열)인지 검사합니다.

두 번째 조건(r >= 3 && r <= rows - 2 && c >= 3 && c <= rows - 2) && (r == 3 || r == rows - 2 || c == 3 || c == rows - 2): 3번째 행·열부터 rows-2번째 행·열 사이의 영역 중 안쪽 정사각형의 테두리에 해당하는지 검사합니다.

두 조건 중 하나라도 만족하면 # 문자를 출력하고, 그렇지 않으면 공백을 출력하여 속이 빈 이중 정사각형 모양을 완성합니다.

참고로 clrscr()getch() 함수는 Turbo C 등 구형 컴파일러에서 제공되는 함수로, 최신 컴파일러(GCC 등)에서 사용하려면 <conio.h> 헤더가 필요하거나 해당 호출을 제거해야 할 수 있습니다.

실행 결과

프로그램을 실행하고 행의 개수를 입력하면 아래와 같이 정사각형 안에 정사각형이 출력됩니다.

C 언어로 정사각형 안에 정사각형 출력하는 프로그램