디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

[쿠키뉴스]C 코딩 대회 2009년 9월 25일 개최

망로짭갤로그로 이동합니다. 2009.09.25 12:13:53
조회 180 추천 0 댓글 12

#include <stdio.h>
 #include <stdlib.h>
 #include <ctype.h> /*대문자로 입력하는경우 소문자로 인식하게 해주는 tolower 함수를 사용하기위해 추가했습니다*/
 #include <conio.h> /*어떠한 입력을 받아도 진행되는 getch함수를 사용하기위해 추가했습니다.
                    프로그램 마지막에 쓰였습니다.*/

 typedef struct _node
 {
      int data;
      struct _node* next;
 }node;

 
 node* create_node( int d ); /*정수 d를 저장할 새로운 노드를 생성하는 함수입니다. */

 
 node* fine_next( node* head, int d, int* seq ); /*기본적으로 내림차순이 가능하게 하는 함수입니다.*/

 
 node* search( node* head, int d, int* seq );  /* 리스트에서 정수를 검색하여 일치하는 정수의 순서를
                                               seq에 저장하는 함수 */
 
 
 node* add_sort( node* head, int d ); /* 정수를받아 fine_next와 create_node와 
              같이 작용하여 내림차순으로 정렬된 위치에 삽입하는 함수 입니다.*/

 
 void print_list( node* head ); /*저장된 정수의 리스트를 출력하는 함수 입니다.*/


 node* delete_node( node* head, int seq );/* d(순서)를 입력받으면 그 순서에 해당하는 노드를 삭제하는 함수입니다.*/

 
 
 
 int main(void)
 {
    node* head = 0, * nd;

    char cmdstr[16], extra[255];
    char command;
    int number, query, count, seq;

    while( 1 )
    {
      printf( "-----------------------------------------------------------------------------\\n 명령어를 입력하세요\\n †a삽입<정수>†d=삭제<순서>†f=찾기<정수>†p=프린트†x=종료† \\n-----------------------------------------------------------------------------\\n" );
         gets( cmdstr );

      count = sscanf( cmdstr, "%c %d %s", &command, &number, extra );
      if( !( count == 1 || count == 2 ) )
      {
           printf( " 명령어를 잘못 입력 하셨습니다. 다시 입력하여 주십시오.\\n" );
          continue;
      }

      command = tolower( command );

      if( command == \'x\' )
           break;
      else if( command == \'p\' )
      {
           if( count != 1 )
         {
           printf( " 입력오류\\n" );
           continue;
         }
      }
      else
      {
         if( count != 2 )
         {
           printf( " 입력오류\\n" );
           continue;
         }
      }

      switch( command )
      {
           case \'a\' :
            printf( "\\n 삽입완료 \\n" );
            head = add_sort( head, number );
              break;

         case \'d\' :
            printf( "\\n 삭제완료 \\n" );
            head = delete_node( head, number );
              break;

         case \'f\' :
            printf( "\\n 검색 \\n" );
            nd = search( head, number, &seq );
            if( nd == 0 )
                 printf( " %d을 리스트에서 찾을 수 없습니다.\\n", number );
            else
                 printf( " %d) %d\\n", seq, nd->data );
              break;

         case \'p\' :
            printf( "\\n 출력 \\n" );
            print_list( head );
              break;

         default :
            printf( "\\n잘못된 명령어 입니다.\\n" );
      }
    }

   
    getch();
    return 0;
 }
 /* 보조함수 */
 node* create_node( int d )
 {
      node* newnode = (node*)malloc( sizeof(node) );
      if( newnode == 0 )
      {
             fprintf( stderr, " 메모리 할당 에러 \\n" );
         getch();
         exit( EXIT_FAILURE );
      }
      newnode->data = d;
      newnode->next = 0;
      return newnode;
 }

 node* fine_next( node* head, int d, int* seq )
 {
      node* prev = 0, * cur = head;
      int i = 1;
      while( cur )
      {
           if( cur->data <= d )
          break;
         prev = cur;
         cur = cur->next;
         i++;
      }

      *seq = --i;
      return prev;
 }

 node* search( node* head, int d, int* seq )
 {
        node* prev = fine_next( head, d, seq );
      if( prev == 0 )
      {
            if( head->data == d )
         {
            ++*seq;
                  return head;
         }
      }
      else
      {
         if( prev->next && prev->next->data == d )
         {
            ++*seq;
              return prev->next;
         }
      }
      return NULL;
 }

 node* add_sort( node* head, int d )
 {
      int seq;
        node* nw = create_node( d );
      node* prev = fine_next( head, d, &seq );

      /* d is preceding head */
      if( prev == 0 )
      {
            nw->next = head;
            return nw;
      }

      nw->next = prev->next;
      prev->next = nw;
      return head;
 }

 void print_list( node* head )
 {
      int i = 0;
      if( head == 0 )
      {
           printf( " 저장된 정수가 없습니다.\\n" );
         return;
      }

          while( head )
      {
           printf( " %2d} %d \\n", ++i, head->data );
         head = head->next;
      }
 }

 node* delete_node( node* head, int seq )
 {
      int i;
   node* cur, * prev = 0;

   if( head == 0 )
   {
        printf( " 저장된 정수가 없습니다.\\n" );
         return head;
   }

   cur = head;
   i = 1;

   while( i < seq )
   {
        if( cur->next )
      {
           prev = cur;
         cur = cur->next;
         i++;
      }
      else
       break;
   }

   if( i == seq )
   {
        printf( " %d번째 노드를 삭제합니다.\\n", seq );
        if( prev == 0 )
      {
          head = head->next;
          free( cur );
      }
      else
      {
          prev->next = cur->next;
          free( cur );
      }
   }
   else
        printf( " %d번째 노드는 존재하지 않습니다.\\n", seq );
   return head;
 }







------------------

는 훼이꾸고
저렇게 까지 해놨는데
저게 리니어링크드리스트로 작성한거거든
물론 내가한건아니고
씨발 1학년인데 저런거 내주고있어 아직 C 다 배우지도 않았는데 아오 진짜

그래서그런데

a는 정수삽입
d는 삭제 뭐 이런건 다했고

s

● 현재 liked list에 존재하는 정수 값들의 합과 평균, 개수, 중앙값을 구하여 화면에 출력.

● 예제에 나오는 것처럼 sum(합), avg(평균), cnt(개수), mdn(중앙값) Label과 함께 출력 되어야 함.

◆ 평균(avg)은 소수점 첫 번째 자리에서 반올림 할 것.

◆ 중앙값(mdn)은 통계집단의 변량들을 정렬하였을 때, 중앙에 위치하는 값으로 메디안이라고도 하는데,총수 n이 홀수일 때는 (n+1)/2번째의 변량,총수 n이 짝수일 때는 n/2번째와 (n+2)/2번째의 변량의 산술평균을 구한다.


이걸 못하겠단 말이지...

오빠들 쫌 도와줘 ㅠㅠ

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 연예인 안됐으면 어쩔 뻔, 누가 봐도 천상 연예인은? 운영자 24/06/17 - -
162680 밤새서 공부하면 말입니다 [4] 연어갤로그로 이동합니다. 09.12.15 104 0
162679 밑에 ㅇ님이 쓰신 프로그래밍 서적이라는 글제목의 글을 보고 [2] ㅎㅎ(124.153) 09.12.15 70 0
162678 횽들 소스 볼수있는곳이 어디 없을까? [1] ㅇㄴ(122.35) 09.12.15 64 0
162677 아니 프갤에서 왠 프로그래밍 글을 싸는거야? [1] Rhea갤로그로 이동합니다. 09.12.15 130 0
162676 걍 acm에 관해 물어볼게 있는데.. [4] 풍류남(123.248) 09.12.15 70 0
162675 ASP.NET으로 파일 몇개 만들어야 하는데 도와주실분 [1] 닷넷(119.70) 09.12.15 28 0
162674 이쯤에서_젖절한_신세경_찬양.jpg [4] 숙신갤로그로 이동합니다. 09.12.15 201 0
162673 VB 메뉴,,, 좀 도와주세요 [11] 흠...(125.185) 09.12.15 84 0
162672 Qt 는 언어라고 볼수가 없슴미콰? [6] 허허벌판갤로그로 이동합니다. 09.12.15 144 0
162671 계산기 키패드의 배치 변경 – 배열 활용 [3] 김성규(220.67) 09.12.15 80 0
162669 자바스크립트인데 조공있어~횽들 도와줘~ㅎ [2] 과제중(116.120) 09.12.15 128 0
162668 내가 진짜 멍청한건지 여러 프로세스에서 alarm처리를 도저히 못하겠음 [3] 0089(221.138) 09.12.15 67 0
162667 금도끼은도끼 [1] 유리한갤로그로 이동합니다. 09.12.15 65 0
162666 형들 SQL2000에서 데이터베이스복원이 안됨 어찌해야함 ㅇㅇ(118.33) 09.12.15 46 0
162665 만화라고?! [6] 아주아슬갤로그로 이동합니다. 09.12.15 149 0
162664 피_팔아서.JPG [5] 고추장불고기갤로그로 이동합니다. 09.12.15 207 0
162663 직장 다니는 횽들한테 궁금한게 있는데 [6] 메탈스피릿갤로그로 이동합니다. 09.12.15 161 0
162662 이런거 물어봤다가 다굴당할거같은데 그래서 조공과 함께 물어봄. [10] 빕뱟뱟갤로그로 이동합니다. 09.12.15 198 0
162661 키보드 하나 질러야 되는데, 이거 어때? [4] 숙신갤로그로 이동합니다. 09.12.15 164 0
162660 나만그런가 [16] 메탈스피릿갤로그로 이동합니다. 09.12.15 180 0
162658 오늘 식당에 가면 이걸하나 만들어볼거야 [2] 연어갤로그로 이동합니다. 09.12.15 118 0
162657 블로그 좀 한다는 애들 보고 있으면 [11] 파예(121.67) 09.12.15 194 0
162656 아..진짜 골때린다 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ [9] 캐꼬꼬닭(112.216) 09.12.15 159 0
162654 나 오늘 첨으로 구글 영어문서에서 도움을 얻었음여.. [2] 캐꼬꼬닭(112.216) 09.12.15 60 0
162653 방학을 맞아 본격 감성적인 알고 [1] algo갤로그로 이동합니다. 09.12.15 78 0
162652 아아 죄송합니다. [4] 벡터(125.177) 09.12.15 96 0
162651 카이신님♥ [12] 벡터(125.177) 09.12.15 110 0
162650 당나귀가 돌아가셨군 [1] 이모군(121.124) 09.12.15 74 0
162649 혹시 여기 법사 있어? [6] 물속의다이아갤로그로 이동합니다. 09.12.15 132 0
162646 내가 생각하는 정보통신의 한계 [1] 연어갤로그로 이동합니다. 09.12.15 83 0
162645 정보통신에서 전기와 전기의 접근(잘 이해가 안된다고 해서) [1] ㅇㅇㅇ(218.101) 09.12.15 66 0
162644 전문서적과 전공서적의 차이? [2] ㅇㅋ(115.20) 09.12.15 94 0
162643 혁명적인 게임을 생각해내씀 ㅁㅁ(112.149) 09.12.15 113 0
162641 Mmc 언어 궁금증 [2] ㅇㅇㅇ(218.101) 09.12.15 64 0
162640 정보통신에서 전기와 전기의 접근 [2] ㅇㅇㅇ(218.101) 09.12.15 96 0
162639 정보통신의 한계2 [1] ㅇㅇ(218.101) 09.12.15 65 0
162638 정보통신의 한계 ㅇㅇㅇ(218.101) 09.12.15 99 0
162637 C#좀 만지는 너님 질문 좀 [4] 아브릴■갤로그로 이동합니다. 09.12.15 143 0
162636 숭실대 컴공 [5] ㅁㄵㅂ(222.236) 09.12.15 225 0
162635 LightEach 보시오. [10] 씬입사원갤로그로 이동합니다. 09.12.15 189 0
162634 이거 영언데..이거 소켓 못쓴다는거 맞쥐? [9] 캐꼬꼬닭(112.216) 09.12.15 103 0
162633 개 뒷북글~ 물속의다이아갤로그로 이동합니다. 09.12.15 52 0
162632 2의 배수를 even 4의 배수는 quad? 8의 배수? 16의 배수? [16] 무나물(210.94) 09.12.15 346 1
162630 c++ 정보은닉을 물어봅니다. [5] ddd(115.143) 09.12.15 104 0
162629 여자 게임 개발자의 말로(폭) [5] 칭송받는자(210.118) 09.12.15 322 0
162627 아..웹채팅..서버 소켓 생성할때.. [11] 캐꼬꼬닭(112.216) 09.12.15 124 0
162624 또 안타까운 별이 지다 T_T 2만6천편 업로드…김본좌 능가한 정본좌 [2] 이웃집또테러갤로그로 이동합니다. 09.12.15 118 0
162623 행복하군요 [1] 세브(211.117) 09.12.15 113 0
162622 혹시 프로그램 테스트좀 해줄사람있어? 심심하면 좀 돠줘 [14] 물과사람(125.7) 09.12.15 139 0
162621 회사 싸운 이야기 후기... [4] 물속의다이아갤로그로 이동합니다. 09.12.15 177 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2