c언어를 배울 때 처음 나온 과제가 풍차(바람개비)만들기 였던 것 같다. 그런데 나는 한 1분도 안되서 풀었던 기억이 있다.
이쪽에 재능이 있나보다. 뭐 어찌됐든 풍차(바람개비)를 만들어보자
c언어는 절차지향 언어이기 때문에 콘솔에 풍차(별)를 찍을 때 위에서부터 찍어야한다.
그리고 풍차의 날개가 4개니까 위에 2개, 아래에 2개를 배치한다고 하면 위에 2개부터 찍고 내려와서 아래 2개를 마저 찍어야한다.
즉 콘솔창에서 풍차(바람개비) 날개를 왼쪽부터 2개 그린 후에 오른쪽에 2개를 그리는 행위는 불가능하다.
다음은 c언어로 구현한 풍차이다. 풍차 날개의 원하는 값을 한번 입력해보자.
#include <stdio.h>
void make_star(int n);
int main(void){
int n;
printf("길이를 입력하시오\n"); //출력
scanf("%d", &n); //입력해라
printf("\n\n");
make_star(n); //별이랑 공간만든다
printf("\n");
}
void make_star(int n){
int i,j;
//위에 날개 두 개를 만들어주는 곳
for (i=1;i<=n;i++){
for (j=i;j>0;j--)
printf("*");
for (j = n-i; j >= 0; j--)
printf(" ");
for (j = n - i; j >= 0; j--)
printf("*");
printf("\n");
}
//아래 날개 두 개를 만들어 주는 곳
for (i=1;i<=n;i++){
for (j = n-i; j >= 0; j--)
printf(" ");
for (j=i;j>0;j--)
printf("*");
for (j=i;j>0;j--)
printf(" ");
for (j = n-i; j >= 0; j--)
printf("*");
printf("\n");
}
}
아래는 결과 화면이다.
참고로 풍차(바람개비)를 만들기 위해서는 if문과 for 문 정도는 알아야한다. for문도 이중 포문을 사용해서 만들어야하며 포문을 사용 안하고 printf문만 사용해서도 만들 수 있다.
printf문 한개로 기가막히게 띄어쓰기와 별을 그려주면 기가 막히고 코가 막히게 풍차를 만들 수 있으며 만약 그렇게 만들었다가는 조교나 교수님에게 칭찬 혹은 꾸지람을 들을 각오를 해야한다. 복불복이다.
지금 내가 프로그래밍을 한지 약 10년 동안 그렇게 짠 코드를 본적이 없지만 지금 생각해보면 아마 그렇게 짤려고 하는 프로그래머가 진짜 프로그래머 이자 진짜 고수라고 생각이 든다.
다음 포스팅에도 프로그래밍 과제로 나올만한 것들을 하나씩 풀어보도록 하겠다.
물론 이 블로그를 보고 컨닝을 하면 절대 안된답니다!
'Programming > Algorithm' 카테고리의 다른 글
C언어 소수 구하는 프로그램 코드 (0) | 2018.05.19 |
---|---|
C언어 스택(STACK) 예제 (0) | 2018.04.25 |
C언어 큐(QUEUE) 예제 (0) | 2018.04.25 |
c언어 반복문을 사용해서 10진수를 2진수 문자열로 만들기 (0) | 2018.04.20 |
c언어로 짠 어떤 숫자가 들어오든 1의 자리는 버리고 10의 자리는 올리기 (0) | 2018.04.20 |