본문 바로가기
Programming/Algorithm

c언어 풍차(바람개비) 만들기

by 제타 2018. 4. 26.
반응형


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년 동안 그렇게 짠 코드를 본적이 없지만 지금 생각해보면 아마 그렇게 짤려고 하는 프로그래머가 진짜 프로그래머 이자 진짜 고수라고 생각이 든다. 


다음 포스팅에도 프로그래밍 과제로 나올만한 것들을 하나씩 풀어보도록 하겠다.

물론 이 블로그를 보고 컨닝을 하면 절대 안된답니다!

반응형