LABORATORY

검색 :
RSS 구독 : 글 / 댓글 / 트랙백 / 글+트랙백

교양 C언어 프로그래밍 과제..

2009/05/21 11:58, 글쓴이 Prime's

[adsense1]

교양수업인 컴퓨터 프로그래밍의 과제입니다..^^;;
마름모.. 정말 힘들었어요.. 그래서.. 마름모.. 다른거 참고하면서 했습니다.

===============
숙제 : 마름모를 찍어내야합니다.
조건 : 음수입력시, 짝수입력시, 출력하는 오류메시지를 따로 구성하세요..
===============

강평 1 : 비주얼 스튜디오 6.0 왜 자꾸 컴파일할때 죽을까요??_-;; 진짜로 죽여주길 바라는걸까요??
          이래서 리눅스에서 컴파일 하는걸 좋아합니다..
강평 2 : 만약, 한두번 에러검사후 음수를 넣어버리면 안되니까.. 제대로 된 수를 넣을때까지 계속 에러를 내뱉으라고 while문으로 돌렸습니다.. 착하죠?
강평 3 : 주석과 가독성이 중요하다고 합니다.. 그래서 주석처리도 좀 했구요..
강평 4 : 사용자 정의 함수에 (int n)처럼 넣으려니까 안되네요.. type이 먼저 지정되어 있다나.. 사실, 정수로 받은 n을 다시 정수 n으로 넣는것이잖아요?? 그래서 그냥 n을 입력했더니 잘 됩니다.^^;; 소스가 어떻건 간에. 프로그램이 제대로 돌아가기면 하면 되는것이니까요..
강평 5 : 여름방학때 C언어를 집중적으로 배워볼려구요.. 저의 꿈은, 수학계산프로그램을 만드는 겁니다. 제일 먼저 determinant를 구하는  것을 만들고 싶네요.. n by n과, n by m 두가지 경우가 있으니.. 복잡하겠군요..^^


====================================================

#include <stdio.h>
#include <math.h>
//마름모 찍기
//
//3이상의 수를 입력받아야 함.
//////////////////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////////////////

//----------------------------------------------------------------------별찍기 함수 시작.

int rhombus(int n)
{
 int i, j, tmp;
 tmp = n / 2;//높이 나누기 2값을 저장

 for(i=0; i<n; i++) //---------------------------전체 높이만큼 실행
  {
         for(j=0; j<n; j++)//-----------------각 줄마다 실행.
                {
                        if(j >= abs(tmp - i) && j < n - abs(tmp -i))
      {//--------------------------별표찍기 검산.
       //한 줄에서, 별표는, (전체줄수-1)/2의 값에 해당 줄 수를 뺀 값보다 큰곳, 전체줄수에서 (전체줄수-1)/2를 뺀 곳에 찍힌다.
       //위에서, n = 5이고, i = 0이라면, 첫번째 줄에서 별을 찍는것이며,
       //첫번째줄에서는 별이 제일 가운데 한개 찍혀야만 한다.
       //(5-1)/2 = 2이고, 별은 2보다 크거나 같거나, 5 - 2 = 3번째보다 작은곳에 찍힌다. 별은 2번째 줄에 찍히는데,
       //처음 시작을 0부터 했으므로, 별은 2 + 1인 3번째에 찍힌다.
       printf("*");
      }
                        else//--------------------------별표가 아닌곳은 전부 공백처리
      {
       printf(" ");
      }
                }
                printf("\n");//한줄이 끝나면 다음 줄로 바꾼다.
        }

        printf("\n");//모양이 이쁘게 하기 위해..

 //printf("%d \n", n); //코딩할때 숫자 보려고 쓴것..
 //printf("%d \n", tmp);//역시나 숫자 확인용..

  return 0;
}
//----------------------------------------별찍기 함수 끝
//////////////////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////////////////

//----------------------------------------------------------------------메인 함수 시작.
int main()
{
 int n;
 
 printf("마름모의 높이를 입력해 주세요. 높이는 1이상의 홀수입니다. :");
 scanf("%d", &n);//n : 입력받는 수
 
 while( n <= 1 || n % 2 == 0)//전체적으로 n이 1보다 작거나 같은경우, 혹은 n이 짝수인 모든 경우에 대해서 검산
 {
  if( n <= 1)//n이 1보다 작은경우
  {
   if( n = 0)//그중 n이 0으로 입력된 경우
   {
    printf("0이 입력될 수는 없습니다. 다시 입력해 주세요. :");
    scanf("%d", n);
   }
   if( n < 0)//n이 음수인 경우
   {
    printf("음수를 입력하셨습니다. 양수로 다시 입력해 주세요. :");
    scanf("%d", &n);
   }
   //////위의 경우의 수를 제외한 나머지. 여기서는 n = 1인경우 하나만 존재.
   printf("마름모의 높이는 1 보다 큰 양의 홀수입니다. 다시 입력해 주세요. :");
   scanf("%d", &n);
   
  }
  if( n > 1)//n이 1보다 클 경우. n이 짝수인지만 검산하면 된다.
  {
   if( n % 2 == 0)//n이 짝수인 경우를 검산.
   {
   
     printf("짝수를 입력하셨습니다. \n");
     printf("마름모의 높이는 홀수만 가능합니다. 다시 입력해 주세요. :");
     scanf("%d", &n);
   
   }
  }
 }
/////////////////////////////////////////////검산 완료
//----------------------------------------------------------------------별찍기 함수 도입.

 rhombus(n);//rhombus는 마름모라는 뜻.. 사용자 정의 함수 도입. int n으로 하지 않은 이유는, n이 정수형으로 선언되어 있음.
 //int n으로 하면 에러가 납니다.^ ^


 
 return 0;

}
       

크리에이티브 커먼즈 라이센스
Creative Commons License
2009/05/21 11:58 2009/05/21 11:58

맨 위로

같이하실분을 찾습니다..

2007/11/15 23:55, 글쓴이 Prime's
[adsense1]

C언어를 조금 햇었는데요..
어정쩡하게 하느니 조금 깊게 들어가보고자 합니다..
교재는 Teach Yourself C고요.. 비앤씨에서 나온 책이네요..

혼자하기는 조금 힘들고..
인터넷상으로 같이 하실분을 모셔요..
이거 다음은 자바를 할것 같습니다..

머..
해당학과가 아니라서 많은건 않할거구요..
리눅스도 같이했으면 합니다..

필요하다면 티스토리에서 팀블로그 형식으로 가던지..
머 여러가지 방법이 있지요..
제가 RSS구독을 하시는 분들 중에서도 상당한 고수분들이 계신걸로 압니다..

음..
저는 달력까지는 만들어 봤어요..
년도 입력하고, 달을 입력하면 해당하는 달을 출력하는 것이지요.
물론, 출력부에서 알수없는 에러로 인해서 날짜가 제대로 뿌려지지가 않아서..
포기했었찌요.. 열받아서 지우고.-_-;;;

Teach Yourself C가 꽤나 유명하더라구요..
같이하실분을 모시겠습니다...
뜻이 있으신분도 괜찮구요..
저 혼자 하기엔 조금 벅찰것 같아서 그런 것입니다..

리눅스, C, 자바..
C++은 C를 배우고 하면 더 쉽다고 해서 C를 먼저 할거구요..

...
오늘 게임하던거 접었습니다.
완미세계..
항상 그렇듯이 게임이란건 너무 빠져들게 되서 도움이 않되더라구요..
그시간에 딴걸 하면 도움이 될텐데..ㅎㅎ


(간단히 말해서 온라인 스터디 그룹을 만들자는 애기입니다..ㅎ)
크리에이티브 커먼즈 라이센스
Creative Commons License
2007/11/15 23:55 2007/11/15 23:55

맨 위로

시험끝나고 하고싶은거..

2007/10/15 22:15, 글쓴이 Prime's
[adsense1]

시험끝나고 하고싶은게 있는데요..

예전에 C언어를 공부하다가 때려쳤는데..

혼자 해서 가지고 있으면 100% 힘들어요..

같이 하실분 모아서..

티스토리에 블로그를 하나 더 개설하거나...

아니면 지금 이 블로그에 코드도 올리고 하면서 같이 해볼까 합니다..

자바같은거 하고 싶으나.

손댄건 C언어니까..

그거먼저 해놔야죠^^;;

지금은...

stdio.h헤더만 가지고..

기본 입출력정도 할줄 압니다....;;

제가 아는 분들중에

상당히 고수분들이 많은걸로 아는데..

어찌해볼까요??

꼭 해보고 싶은것중에 하나입니다...

도와주세요~~

교재는 Teach Yourself C가 있습니다..<-- 추천받은 책이예요..

크리에이티브 커먼즈 라이센스
Creative Commons License
2007/10/15 22:15 2007/10/15 22:15

맨 위로