본문 바로가기

코딩

포인터 별찍기

오늘 포인터에 대해서 배웠는데, 포인터... 아직도 많이 헷갈린다ㅠㅠ

열심히 복습하자...

for문만을 사용해서 만들었다.

#include<iostream>
#include<string>
using namespace std;

int main()
{
	const char* str1 = "*****";
	const char* str2 = "     ";

	//1번
	for (int i = 0; i < 5; i++)
	{
		cout << str1 + 4 - i << endl;
	}
	for (int i = 0; i < 5; i++)
	{
		cout << str1 + i << endl;
	}

	//2번
	for (int i = 0; i < 5; i++)
	{
		cout << str2 + 5 - i;
		cout << str1 + i << endl;
	}
	for (int i = 0; i < 5; i++)
	{
		cout << str2 + i + 1;
		cout << str1 + 4 - i << endl;
	}

	//3번
	for (int i = 0; i < 5; i++)
	{
		cout << str2 + i + 1;
		cout << str1 + 4 - i;
		cout << str1 + 4 - i << endl;
	}
	for (int i = 0; i < 5; i++)
	{
		cout << str2 + 5 - i;
		cout << str1 + i;
		cout << str1 + i << endl;
	}

	//4번
	for (int i = 0; i < 5; i++)
	{
		cout << str1 + i;
		cout << str2 + 5 - i;
		cout << str2 + 5 - i;
		cout << str1 + i << endl;		
	}
	for (int i = 0; i < 5; i++)
	{
		cout << str1 + 4 - i;
		cout << str2 + i + 1;
		cout << str2 + i + 1;
		cout << str1 + 4 - i << endl;
	}
}

2.0 ver Patch Note

별찍기 모양을 4가지 함수로 나누어서 선언

그 함수를 이용하여 반복적으로 사용되는 부분 간편화

#include<iostream>
#include<string>
using namespace std;

const char* str1 = "*****";
const char* str2 = "     ";

void PrintRT(int i)
{
	cout << str1 + 4 - i;
	cout << str2 + i + 1;
}

void PrintRB(int i)
{
	cout << str1 + i;
	cout << str2 + 5 - i;
}

void PrintLB(int i)
{
	cout << str2 + 5 - i;
	cout << str1 + i;
}

void PrintLT(int i)
{
	cout << str2 + i + 1;
	cout << str1 + 4 - i;
}

int main()
{
	//1번
	for (int i = 0; i < 5; i++)
	{
		PrintRT(i);
		cout << endl;
	}
	for (int i = 0; i < 5; i++)
	{
		PrintRB(i);
		cout << endl;
	}	
	

	//2번
	for (int i = 0; i < 5; i++)
	{
		PrintLB(i);
		cout << endl;
	}
	for (int i = 0; i < 5; i++)
	{
		PrintLT(i);
		cout << endl;
	}
	

	//3번
	for (int i = 0; i < 5; i++)
	{
		PrintLT(i);
		PrintRT(i);
		cout << endl;
	}
	for (int i = 0; i < 5; i++)
	{
		PrintLB(i);
		PrintRB(i);
		cout << endl;
	}

	//4번
	for (int i = 0; i < 5; i++)
	{
		PrintRB(i);
		PrintLB(i);
		cout << endl;
	}
	for (int i = 0; i < 5; i++)
	{
		PrintRT(i);
		PrintLT(i);
		cout << endl;
	}


	int input;
	cin >> input;
}

'코딩' 카테고리의 다른 글

더블포인터 빙고 vs Computer  (0) 2022.11.01
더블포인터 빙고  (0) 2022.11.01
달팽이 배열  (0) 2022.10.27
빙고 ver2(문자열)  (2) 2022.10.26
빙고 게임  (0) 2022.10.25