오늘의하루

C언어 피라미드, 마름모 별찍기(for문 연습) 본문

코딩공부

C언어 피라미드, 마름모 별찍기(for문 연습)

오늘의하루_master 2022. 4. 21. 17:49

C언어를 배우면 for문에서 무조건 나오는 피라미드와 마름모 별(*)찍기에 대해 글을 작성하였습니다.

여기서 사용되는 것은 이중 for문이며 간단한 덧셈 곱셈만 할 줄 안다면 만들 수 있습니다.

사각형 만들기

우선 이중 for문을 이용해 사각형을 먼저 만들어 보겠습니다.

#include <stdio.h>

int main(void)
{
	for (int i = 0; i < 5; i++)
	{
		for (int j = 0; j < 5; j++)
		{
			printf("*");
		}
		printf("\n");
	}
	return 0;
}

첫번째 for문은 몇번을 반복할 것인지를 나타내고 두번째 for문은 어떻게 별(*)을 찍을 것인지를 나타내는 것입니다.

사격형 만들기 결과


왼쪽으로 붙은 직각 삼각형 만들기

#include <stdio.h>

int main(void)
{
	for(int i = 0; i < 5; i++)
	{
		for(int j = 0; j <= i; j++)
		{
			printf("*");
		}
		printf("\n");
	}
	return 0;
}

위에서 말한것과 같이 첫번째 for문은 반복할 횟수를 두번째 for문은 어떤 형태로 별(*)을 찍을지를 나타냅니다.

왼쪽으로 붙은 직각 삼각형 만들기 결과


피라미드 만들기

피라미드를 만들기 위해서는 별(*)이 1,3,5,7,9,... 이렇게 늘어나야합니다.

#include <stdio.h>

int main(void)
{
	for (int i = 0; i < 5; i++)
	{
		for (int j = i; j < 4; j++)
		{
			printf(" ");
		}
		for (int h = 0; h < i*2+1; h++)
		{
			printf("*");
		}
		printf("\n");
	}
	return 0;
}

첫번째 for문은 반복할 횟수, 두번째 for문은 피라미드를 만들기 위한 빈공간을 만들기 위해, 세번째 for문은 실질적인 피라미드 모양의 별(*)을 나타냅니다.

a

피라미드 만들기 결과


마름모 만들기

마름모를 만드는 방법은 피라미드를 각각 반대로 만들어 주시면 됩니다.

#include <stdio.h>

int main(void)
{
	int num = 3;//아래 모양을 만들기 위한 변수
	
	for (int i = 0; i < 5; i++)
	{
		for (int j = i; j < 4; j++)
		{
			printf(" ");
		}
		for (int h =  0; h < i*2+1; h++)
		{
			printf("*");
		}
		printf("\n");
	}
    //마름모 위 모양 완성
	for (int a = 0; a < 4; a++)
	{
		for (int b = 0; b <= a; b++)
		{
			printf(" ");
		}
		for (int c = num*2+1; c > 0; c--)
		{
			printf("*");
		}
		printf("\n");
		num = num - 1;
	}
	//마름모 아래 모양 완성
	return 0;
}

마름모 만들기 결과

Comments