F.R.I.D.A.Y.

수식으로 하트그리기 본문

DEV/C C++

수식으로 하트그리기

F.R.I.D.A.Y. 2018. 4. 14. 22:03
반응형

갤러리에 사진을 찾아보다가 교수님이 바라는 과제물과 학생들 수준에 관한 자료가 있길래 보니 하트 그리는 프로그램이 있었다.

아무 생각없이 사진에 있는 코드를 복사해보았다.



#define _USE_MATH_DEFINES //math.h에 define으로 선언된 상수를 이용가능하도록 선언함. M_PI(파이값)
#include <stdio.h>
#include <math.h>

int main(void) {
	double si = 0;
	
	for (int i = 0; i <= 270; i += 20) {
		si = sin((M_PI * i) / 180);
		for (int x = 0; x < (-si + 1) * 10; x++) {
			printf(" ");
		}
		if (i <= 90) {
			for (int x = 0; x < 2 * (int)(si * 10); x++) {
				printf("*");
			}
			for (int x = 0; x < ((-si + 1) * 10); x++) {
				printf(" ");
			} //상반 왼쪽 반구를 출력하는데 사용한다.
			for (int x = 0; x < (-si + 1) * 10; x++) {
				printf(" ");
			}
			for (int x = 0; x < 2 * (int)(si * 10); x++) {
				printf("*");
			} //상반 오른쪽 반구를 출력하는데 사용한다.
		}
		else {
			si = si + 1;
			
			for (int x = 0; x < 2 * (int)(si * 10); x++) {
				printf("*");
			}//하트 아랫부분(산이 뒤집힌 모양)을 출력한다.
		}
		printf("\n");
	}

	return 0;
}


Result:


위 코드를 복붙하면 사진과같은 결과를 얻지만, 일반적으로 위 코드는 보기도 힘들 뿐드러 가독성이 낮아서 어떤 도형이 그려지는지도 알 수 없다. 고로



#include <stdio.h>

int main(void) {
	printf("\n");
	printf("       ******              ******\n");
	printf("    ************        ************\n");
	printf("  ****************    ****************\n");
	printf(" ******************  ******************\n");
	printf(" **************************************\n");
	printf("  ************************************\n");
	printf("    ********************************\n");
	printf("       **************************\n");
	printf("          ********************\n");
	printf("              ************\n");
	printf("                 ******\n");
	printf("                   **\n");

	return 0;
}



위 코드처럼 작성하는게 더 낫다. 참고로 고정폭 폰트를 사용하는 것을 추천한다. 필자가 올리는 콘솔 이미지도 모두 D2Coding을 이용해 고정폭 폰트다.

728x90
반응형

'DEV > C C++' 카테고리의 다른 글

Q 삼각형 넓이 구하기  (0) 2018.04.15
Q 공배수 출력  (0) 2018.04.15
전처리 상수 VS 일반 상수  (0) 2018.04.14
바둑 죽은 돌 개수 구하기 for C  (0) 2018.04.14
값 받아서 그래프 그리기  (0) 2018.04.13
Comments