디시인사이드 갤러리

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

갤러리 본문 영역

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

망로짭갤로그로 이동합니다. 2009.09.25 12:13:53
조회 181 추천 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 - -
163005 성인용품 구매해 본 횽들에게만 묻습니다. [13] 아주아슬갤로그로 이동합니다. 09.12.17 232 0
163004 던파 패치 완료됨 [3] 개떙보갤로그로 이동합니다. 09.12.17 131 0
163003 프갤횽들을 위한 클래식 2탄 [1] algo갤로그로 이동합니다. 09.12.17 74 0
163002 결혼 안하신횽들에게만 묻습니다. [7] 물속의다이아갤로그로 이동합니다. 09.12.17 127 0
163001 프갤횽들을 위한 클래식 [1] algo갤로그로 이동합니다. 09.12.17 77 0
163000 여서씨에요 prismatic갤로그로 이동합니다. 09.12.17 57 0
162999 웨이브 사용하는 형들.. 웨이브 하나 만들어서 나 초대좀 시켜줘바바. [7] yundream(211.189) 09.12.17 159 0
162998 저 api 공부한지 지금 한 2주일 댔는데여. 채팅프로그램 쉽던데여? [5] 씬입사원갤로그로 이동합니다. 09.12.17 193 0
162997 야이 입코딩만 번지르르하고 실력은 좆도 없는 새끼들아 [11] 아주아슬갤로그로 이동합니다. 09.12.17 233 0
162996 html코딩도 프로그래밍이냐? [5] ㅅㅅ(210.217) 09.12.17 150 0
162995 이게 우리학교1 주일 채팅프로그램 과제 제시문임 [15] ㅡㅎㅁ(121.138) 09.12.17 191 0
162994 C# 좀 질문할께 형들 [6] 급한걸어떻게(115.94) 09.12.17 155 0
162992 아 tdi 필터 단에서 패킷 변조 가능하네요. [3] 외계달팽갤로그로 이동합니다. 09.12.17 190 0
162991 살려주세요 자바에 무지한 저에게 이거만 제발!! [3] ㅡㅎㅁ(121.138) 09.12.17 100 0
162989 goto Format. [16] 혼아갤로그로 이동합니다. 09.12.17 109 0
162988 카이신님 아까 욕한사람입니다 [5] ㅡㅎㅁ(121.138) 09.12.17 105 0
162987 아 쉬베ㅐㄹ 출입증갤로그로 이동합니다. 09.12.17 45 0
162986 프리만 뛰니깐 정규직으로 가는게 두렵다. [6] ㅇㅇ(210.94) 09.12.17 180 0
162983 기사하나 던짐.. dd(210.107) 09.12.17 65 0
162982 후..미안ㅋㅋㅋㅋㅋㅋ [3] 씼쌰ㅃ(123.142) 09.12.17 79 0
162979 교수가 짜증납니다 [22] ㅡㅎㅁ(121.138) 09.12.17 237 0
162978 네이버 뮤직 플레이어 프로그램->플래시로 바꿨던데.. [1] I.H.C갤로그로 이동합니다. 09.12.17 129 0
162977 깨코코닭 횽 플렉스 질문. [15] ㅇㄴㅣㅏ갤로그로 이동합니다. 09.12.17 103 0
162976 숙신 [3] 유리한갤로그로 이동합니다. 09.12.17 126 0
162975 비타횽 노트북 [6] 유리한갤로그로 이동합니다. 09.12.17 127 0
162973 그냥 생각난 문제. [13] 유리한갤로그로 이동합니다. 09.12.17 140 0
162971 기발한 광고다.... [2] 엽기토깽이갤로그로 이동합니다. 09.12.17 142 0
162970 산업용 백플레인보드에는 vga뭐 끼워야 합니까;; [6] 깊깊구(61.83) 09.12.17 76 0
162969 노트북좀 추천해 주면 안돼? [15] 양희철갤로그로 이동합니다. 09.12.17 185 0
162967 구글 웨이브 쓸사람 여기붙어라 ㅡ.ㅡㅋ [16] 카이신갤로그로 이동합니다. 09.12.17 206 0
162966 아... [11] Evergrin(222.106) 09.12.17 126 0
162965 ㅎㅎ [3] Q Lazzarus갤로그로 이동합니다. 09.12.17 64 0
162964 아 시험공부 짜증나 ㅜㅜ [1] JuEUS-U갤로그로 이동합니다. 09.12.17 93 0
162963 근데요 자바로 채팅 만들려는데 방목록 그건 뭘로 만드는게좋을까요? 리스트 [4] ㄴㅇㄹㅇㄴ(121.138) 09.12.17 107 0
162962 횽들 공학인증에 대해 어떻게 생각해? [8] nAdAviLLe갤로그로 이동합니다. 09.12.17 121 0
162961 혹시... 프로그램 관련 교수님이 계신다면... [3] 엽기토깽이갤로그로 이동합니다. 09.12.17 128 0
162960 STL vector의 erase 제대로 작동 합니까? [3] 비교연산자(124.49) 09.12.17 127 0
162959 양심적으로 살자. [2] 유리한갤로그로 이동합니다. 09.12.17 157 0
162958 Wisestar 갤러리에 오신것을 환영합ㄴ디ㅏ [4] Wisestar갤로그로 이동합니다. 09.12.17 156 0
162957 신입인데요 Wisestar님의 안타까운 소식을 듣고 111(121.138) 09.12.17 85 0
162956 Wisestar 를 그만 놀려라. 숙제 해놨다. 어서 가져가라. [1] 씬입사원갤로그로 이동합니다. 09.12.17 113 0
162955 Wisestar횽이라면 답을 알려줘도 괜찮겠다 [5] 아주아슬갤로그로 이동합니다. 09.12.17 152 0
162954 아 다들 진짜 너무한거 아님? Wisestar 내가 도와줄게!! [15] LightEach갤로그로 이동합니다. 09.12.17 155 0
162952 Wisestar횽은 숙제 봄.니.다. [7] 물속의다이아갤로그로 이동합니다. 09.12.17 143 0
162951 저를 정보통신부 장관으로 만들어주십시오! [4] nRST갤로그로 이동합니다. 09.12.17 89 0
162950 자바 TItledBorder 좀 알려주십쇼 GUI 같은데 ㅜ [3] ㅁㄴㅇㄹ(121.138) 09.12.17 75 0
162948 씨샵 리스트박스 왤케 느려??ㅠㅠ [3] 씼쌰ㅃ(123.142) 09.12.17 70 0
162947 젊어보이고싶다 [4] 유리한갤로그로 이동합니다. 09.12.17 141 0
162946 다시 정리한 레알친절한 개쉛기 [6] 개쉛기갤로그로 이동합니다. 09.12.17 160 0
162945 저기 님들아 무작위숫자에 대한 갯수를 세야 하는데여 [7] 고리(210.104) 09.12.17 80 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2