모바일 오유 바로가기
http://m.todayhumor.co.kr
분류 게시판
베스트
  • 베스트오브베스트
  • 베스트
  • 오늘의베스트
  • 유머
  • 유머자료
  • 유머글
  • 이야기
  • 자유
  • 고민
  • 연애
  • 결혼생활
  • 좋은글
  • 자랑
  • 공포
  • 멘붕
  • 사이다
  • 군대
  • 밀리터리
  • 미스터리
  • 술한잔
  • 오늘있잖아요
  • 투표인증
  • 새해
  • 이슈
  • 시사
  • 시사아카이브
  • 사회면
  • 사건사고
  • 생활
  • 패션
  • 패션착샷
  • 아동패션착샷
  • 뷰티
  • 인테리어
  • DIY
  • 요리
  • 커피&차
  • 육아
  • 법률
  • 동물
  • 지식
  • 취업정보
  • 식물
  • 다이어트
  • 의료
  • 영어
  • 맛집
  • 추천사이트
  • 해외직구
  • 취미
  • 사진
  • 사진강좌
  • 카메라
  • 만화
  • 애니메이션
  • 포니
  • 자전거
  • 자동차
  • 여행
  • 바이크
  • 민물낚시
  • 바다낚시
  • 장난감
  • 그림판
  • 학술
  • 경제
  • 역사
  • 예술
  • 과학
  • 철학
  • 심리학
  • 방송연예
  • 연예
  • 음악
  • 음악찾기
  • 악기
  • 음향기기
  • 영화
  • 다큐멘터리
  • 국내드라마
  • 해외드라마
  • 예능
  • 팟케스트
  • 방송프로그램
  • 무한도전
  • 더지니어스
  • 개그콘서트
  • 런닝맨
  • 나가수
  • 디지털
  • 컴퓨터
  • 프로그래머
  • IT
  • 안티바이러스
  • 애플
  • 안드로이드
  • 스마트폰
  • 윈도우폰
  • 심비안
  • 스포츠
  • 스포츠
  • 축구
  • 야구
  • 농구
  • 바둑
  • 야구팀
  • 삼성
  • 두산
  • NC
  • 넥센
  • 한화
  • SK
  • 기아
  • 롯데
  • LG
  • KT
  • 메이저리그
  • 일본프로야구리그
  • 게임1
  • 플래시게임
  • 게임토론방
  • 엑스박스
  • 플레이스테이션
  • 닌텐도
  • 모바일게임
  • 게임2
  • 던전앤파이터
  • 마비노기
  • 마비노기영웅전
  • 하스스톤
  • 히어로즈오브더스톰
  • gta5
  • 디아블로
  • 디아블로2
  • 피파온라인2
  • 피파온라인3
  • 워크래프트
  • 월드오브워크래프트
  • 밀리언아서
  • 월드오브탱크
  • 블레이드앤소울
  • 검은사막
  • 스타크래프트
  • 스타크래프트2
  • 베틀필드3
  • 마인크래프트
  • 데이즈
  • 문명
  • 서든어택
  • 테라
  • 아이온
  • 심시티5
  • 프리스타일풋볼
  • 스페셜포스
  • 사이퍼즈
  • 도타2
  • 메이플스토리1
  • 메이플스토리2
  • 오버워치
  • 오버워치그룹모집
  • 포켓몬고
  • 파이널판타지14
  • 배틀그라운드
  • 기타
  • 종교
  • 단어장
  • 자료창고
  • 운영
  • 공지사항
  • 오유운영
  • 게시판신청
  • 보류
  • 임시게시판
  • 메르스
  • 세월호
  • 원전사고
  • 2016리오올림픽
  • 2018평창올림픽
  • 코로나19
  • 2020도쿄올림픽
  • 게시판찾기
  • 오유인페이지
    개인차단 상태
    등교의고통님의
    개인페이지입니다
    가입 : 12-11-23
    방문 : 629회
    닉네임변경 이력
    회원차단
    회원차단해제
    게시물ID : computer_91128
    작성자 : 등교의고통
    추천 : 0
    조회수 : 1088
    IP : 122.36.***.31
    댓글 : 2개
    등록시간 : 2013/06/05 22:12:28
    http://todayhumor.com/?computer_91128 모바일
    [c언어] 단일연결리스트 만들었는데 70퍼센트만 맞대요...
    <p> #include <stdio.h><br>#include <stdlib.h><br>  <br>typedef struct Node<br>{<br>    char str[100];// /포함하여 99자<br>    Node * next; //다음 노드 가르키는 포인터<br>}Node;<br>Node *head=NULL; //헤드를 전역으로 선언<br>  <br>void insert(int c); //위치삽입 함수<br>void del(int c); //삭제함수<br>void move(int c ,int dc); //옮기기 함수<br>void exchange(int c ,int dc); //교환함수<br>void show(int c);//출력함수<br>void playexchange(int c ,int dc);//교환함수에서 실질적으로 돌리는 함수</p><p> </p><p>  <br>int main()<br>{<br>    int N=0,i=0,dc, c;<br>    char a;<br>    scanf("%d",&N);<br>       if(N<=1000&&N>=1)//1<= N  <=1000이아니면 프로그램 종료<br>    {<br>        while(N!=i) //반복문이다.<br>        {<br>            scanf(" %c",&a); //실행할 함수<br>            scanf("%d",&c); //원하는 위치<br>              <br>            switch(a)<br>            {<br>            case 'I':<br>                {<br>                    insert(c);<br>                    break;<br>                }<br>            case 'D':<br>                {<br>                    del(c);<br>                    break;<br>                }<br>            case 'M':<br>                {<br>                    scanf("%d",&dc); // c에서 dc로 옮기는 것이다.<br>                    move(c,dc);<br>                    break;<br>                }<br>            case 'E':<br>                {<br>                    scanf("%d",&dc); //c노드와 dc노드를 교환<br>                    exchange(c,dc);<br>                    break;<br>                }<br>            case 'S':<br>                {<br>                    show(c);<br>                    break;<br>                }<br>            }<br>            i+=1;<br>        }<br>    }<br>    else<br>    {<br>     return -1;<br>    }<br>  <br>  <br>    return 0;<br>}<br>  <br>  <br>void insert(int c)<br>{<br>      <br>     Node* m = head; //m에 head를 복사해놓음<br>     Node* p;<br>     int n;<br>     Node * r = (Node*)malloc(sizeof(Node)); //동적할당<br>     r->next=NULL; //초기화<br>     scanf("%s",&r->str); //값 입력<br>     if(head== NULL) //head가 비어있을시에 헤드에 삽입<br>     {<br>         head = r; <br>     } <br>     else if(c<=1)  //헤드가 삽입되었을때 헤드에 넣고 기존헤드는 다음노드에 삽입하기.<br>     {<br>        r->next=head;<br>       head=r;<br>     } <br>     else// 넣을 위치에 앞노드 p를 이용해 묶는다.<br>     {<br>        for(n=0; n<c-1; n++) <br>        {<br>            p=m;<br>            m=m->next;<br>        }<br>        r->next = p->next;<br>        p->next=r;<br>     }<br>  <br>      <br>}<br>  <br>void show(int c)<br>{<br>    int n=1;<br>    Node * m;<br>    m = head;<br>     while( n!=c) //c번 반복<br>        {<br>            m = m->next; <br>            n++;<br>        }<br>     printf("%s\n",m->str); //반복후에 그 노드의 값을 출력<br>}<br>  <br>void del(int c)<br>{<br>    Node *m = head;<br>    Node *p;<br>    Node *s;<br>    int n;<br>    if(c>1)<br>    {   <br>        for(n=0; n<c-1; n++) <br>        {<br>            s=m;<br>            m=m->next;<br>        }<br>        p=m;<br>        s->next = m->next; //전 노드와 앞노드 묶기<br>        free(p);<br>    }<br>    else if(c==1) //헤드를 삭제할경우 헤드 앞에 노드가 없기에 위와는 다름 형식이된다.<br>    {<br>  p =head->next; //헤드의 다음노드 저장<br>  free(head);//헤드 날림<br>        head = p; //헤드에 저장한 p를 붙이기<br> <br>    }<br>}<br>  <br>void move(int c,int dc)<br>{<br>    Node* m = head;<br>    Node* s,*y,*x,*ny,*nx;<br>   <br>    int n=1;<br>    if(c==1) //헤드자리노드를 다른 자리로 옮길시 함수<br>    {<br>    <br>  for(n=0; n < dc-1; n++)<br>  {<br>    s=m;<br>    m=m->next;<br>  }<br>   y = head;<br>   head = head->next; //헤드를 한칸 앞당김<br>   s->next = y;<br>   y->next = m; //s와 m사이에 헤드노드 삽입<br>    }<br>    else if(dc == 1) //다른 자리 노드를 헤드에 옮길시<br>    {<br>       for(n=0; n < c-1; n++)<br>  {<br>    s=m;<br>    m=m->next;<br>  }<br>   y = head;<br>   x = m;<br>   head = m;//헤드에 다른자리노드 복사<br>   s->next = m->next;//다른자리노드의 부재를 메꾼다.<br>   m->next = y;//다른자리 노드 다음노드를 월레헤드로 연결<br>  <br>    }<br>    else<br>    {<br>        while(m->next!=NULL)<br>        {<br>            n++;<br>            s=m;<br>            m=m->next;<br>            if(n==c)<br>            {<br>                y = s;<br>                x = m; //옮길 자리 노드의 앞노드와 그 자체노드를 따로 복사<br>            }<br>            if(n==(dc-1))<br>            {<br>                ny = m;<br>    nx = m->next; //옮겨질위치 자리 노드의 앞노드와 그 자체노드를 따로 복사<br>            }<br>        }<br>  y->next = x->next;<br>  ny->next = x;<br>  x->next = nx;//c노드를 cd노드의 앞 ny - c - nx이런식으로 삽입한다.<br>    }<br>  <br>}<br>  <br>void exchange(int c ,int dc)<br>{<br>    Node* m = head;<br>    Node* s,*o,*k,*y,*x,*ny,*nx;<br>      <br>    int n=1;<br>    if(c==1)<br>    {<br>        playexchange(c ,dc);<br> <br>    }<br>    else if(dc == 1)<br>    {<br>        playexchange(dc ,c);<br>        <br>    }<br>    else<br>    {<br>        while(m->next!=NULL)<br>        {<br>            n++;<br>            s=m;<br>            m=m->next;<br>            if(n==c)<br>            {<br>                y = s;<br>                x = m; //교환할 1번 노드 앞노드와 그 자체노드 복사<br>            }<br>            if(n==dc)<br>            {<br>                ny = s;<br>                nx = m; //교환할 2번 노드 앞노드와 그 자체노드 복사<br>            }<br>        }<br>  k=x;<br>  o=nx;<br>  y->next = nx;<br>  ny->next = x;<br>  nx->next = k->next;<br>  x->next = o->next;//두 노드를 교환 정보가 엉키지않게 차례를 조율한다.<br>  <br>    }<br>}<br> <br>void playexchange(int c ,int dc)<br>{<br>    int n;<br>    Node *m = head;<br>    Node *s,*k,*y;<br>    for(n=0; n < dc-1; n++)<br>        {<br>            s=m;<br>            m=m->next;<br>        }<br>    k = m;<br>    y = head;<br>    s->next = head;     <br>    m->next = k->next;<br>    head = k;<br>    k->next = y->next;//앞노드가 없는 헤드자리에 노드와 다른자리의 노드를 교환한다. c와 dc둘중 하나가 1이면 파라매터를 바꾸어서 넣으면 되기에 둘의 함수가 같다.<br> <br>}</p><p> </p><p>이거 과제로 컴퓨터가 체점하는건데 돌리니까 70퍼센트 맞았다고 뜨네요....명세서에 있는 예시대로 쳐보면 맞게 나오는데 대체 왜이러는걸까여......2시간 남았는데 죽고 싶지않습니다</p><p> </p><p> </p><p> </p><p>------------------명세서 에요,,,-=---------------------------</p><p> </p><p>연결된 리스트를 사용하여 다음과 같은 라인 편집기를 만들고자 한다. 이 편집기에서 지원되는 연<br>산은 삽입(Insert), 삭제 ,이동(Move), 교환(Exchange), 보기(Show) 다섯 개이고, 이들은 모<br>두 라인(line) 단위로 수행된다.<br>각 연산에 대한 구체적인 설명은 다음과 같다. 여기서 x는 양의 정수이고, str은 문자열이다.<br>1. 삽입: I x str<br>x번 라인 앞에 문자열 str을 삽입한다. 즉, 삽입 후 str이 x번 라인이 된다. 예를 들어, x가 2이면<br>2번 라인에 str이 삽입되고, 기존의 2번 이후의 라인은 하나씩 뒤로 밀린다.<br>2. 삭제: D x<br>x번 라인을 삭제한다.<br>3. 이동: M x y<br>x번 라인을 y번 라인 앞으로 이동한다. 기존의 y번 이후의 라인은 하나씩 뒤로 밀린다.<br>4. 교환: E x y<br>x번 라인과 y번 라인을 서로 바꾼다.<br>5. 보기: S x<br>x번 라인의 내용을 화면에 출력한다. 화면에 출력하는 유일한 연산이다.<br>예를 들어, 아래 왼쪽 연산들이 차례로 입력된 후, 텍스트의 내용은 오른쪽과 같다.<br>I 1 This_is_line_A.<br>I 1 This_is_line_B.<br>I 3 This_is_line_C.<br>I 3 This_is_line_D.<br>D 3<br>I 1 This_is_line_E.<br>⇨<br>1: This_is_line_E.<br>2: This_is_line_B.<br>3: This_is_line_A.<br>4: This_is_line_C.<br>(보기 쉽게 맨 앞에 라인 번호를 표시함)<br>계속해서 아래 연산이 연이어서 입력될 때, 각 연산 이후의 텍스트 내용은 오른쪽과 같다.<br>M 2 5 ⇨<br>1: This_is_line_E.<br>2: This_is_line_A.<br>3: This_is_line_C.<br>4: This_is_line_B.<br>(주의!! 이동 후 5번 라인이 아닌 4번 라인이 됨에 유의)<br>M 3 1 ⇨<br>1: This_is_line_C.<br>2: This_is_line_E.<br>3: This_is_line_A.<br>4: This_is_line_B.<br>15<br>E 3 4 ⇨<br>1: This_is_line_C.<br>2: This_is_line_E.<br>3: This_is_line_B.<br>4: This_is_line_A.<br>프로그램이 만족하는 (혹은 만족해야 하는) 가정 및 조건은 다음과 같다. (조건을 만족시키지 않는<br>경우 감점 처리)<br>1. 각 라인은 영문자와 기호들로 이루어져 있으며, 공백이나 탭은 없다. (즉, scanf로 처리하면 됨)<br>2. 한 라인에 저장되는 글자 수는 최대 99자이고, 라인의 총 수에는 제한이 없다.<br>3. 라인 번호는 1번부터 시작한다.<br>4. 텍스트의 내용은 연결 리스트로 유지해야 한다. 텍스트의 한 라인의 내용 연결 리스트의 한 노드<br>에 저장되도록 한다. 연결 리스트의 형태는 단순, 원형, 이중 연결리스트 등 어떤 것이든 상관없다.<br>5. 모든 연산은 리스트 상에서 수행되어야 한다. 예를 들어, 5번 교환연산의 경우, 해당 두 노드에<br>저장된 문자열 값만 서로 바꿔주는 식으로 구현해서는 안 되고, 두 노드 자체를 리스트 상에서 교환<br>해야 한다.<br>위 설명에 따라 동작하는 프로그램을 작성하시오.<br>다음 정보가 표준입력으로 주어진다. 첫째 줄에는 연산의 총 개수 N이 주어진다(1≤N≤1,000).<br>두 번째 줄부터는 연산의 정보가 한 줄에 하나씩 주어진다. 연산의 형식은 위의 설명을 참조하시오.<br>잘못된 연산은 주어지지 않는다. 예를 들어, 현재 라인이 5개 존재할 때, "M 1 7"과 같은 연산은 주<br>어지지 않는다.<br>다음 정보를 표준출력(stdin)으로 출력한다. 보기 연산에 의해 출력되는 정보를 화면에 출력한다.<br>각 줄의 맨 앞과 맨 끝에 공백은 존재하지 않는다.<br>※ 테스트 데이터의 개수: 10개 (아래 입출력 예 2개 포함)<br>※ 테스트 데이터의 분포<br>- 데이터의 30%는 삽입, 보기 연산만 존재<br>- 데이터의 50%는 삽입, 삭제, 보기 연산만 존재<br>- 데이터의 70%는 삽입, 삭제, 이동, 보기 연산만 존재</p>

    이 게시물을 추천한 분들의 목록입니다.
    푸르딩딩:추천수 3이상 댓글은 배경색이 바뀝니다.
    (단,비공감수가 추천수의 1/3 초과시 해당없음)

    죄송합니다. 댓글 작성은 회원만 가능합니다.

    번호 제 목 이름 날짜 조회 추천
    75
    엘마로 분헤먹었는데 갈아버릴까요? [2] 등교의고통 13/07/19 23:28 53 0
    74
    운이 좋은거 같으나 계륵 등교의고통 13/07/18 21:14 92 0
    73
    검마가좋나요 소마가좋나요? [5] 등교의고통 13/07/18 10:05 92 0
    72
    스카사형님 이거 말고 그 있잖아요 투박한 대검같은거 [5] 등교의고통 13/07/17 14:17 133 0
    71
    아이리스님 이거 말고 그 있잖아요 악기같은거 [2] 등교의고통 13/07/16 06:11 200 1
    70
    사이퍼스의 암밴드 시세좀가르쳐 주세요 등교의고통 13/07/14 06:57 30 0
    69
    해변셋하나만 지르려고하는데 누굴사줄까요? [1] 등교의고통 13/07/08 14:02 70 0
    68
    명작애니 추천해주세요 [5] 등교의고통 13/07/04 02:35 51 0
    67
    지난 1년간 지른 세라..... 등교의고통 13/07/03 16:30 80 0
    66
    [c언어]이런식으로리스트 구현가능할까요? [1] 등교의고통 13/06/16 09:40 49 0
    65
    알테라의 쿼터스2 해보신분 있나요? [2] 등교의고통 13/06/10 22:41 15 0
    64
    [질문]혹시 알테라의 쿼터스2같은거 해보신분 계신가요? 등교의고통 13/06/08 17:07 14 0
    63
    날 화나게 하는 과제때문에 열쇠 100개지름 [3] 등교의고통 13/06/05 22:34 98 0
    [c언어] 단일연결리스트 만들었는데 70퍼센트만 맞대요... 등교의고통 13/06/05 22:12 27 0
    61
    여행을 떠나려고 합니다 [6] 등교의고통 13/06/02 23:46 73 5
    60
    [c언어]반복문이 이상하게 끝나요... 등교의고통 13/06/02 20:13 28 0
    59
    가자 보류게로 [6] 등교의고통 13/05/13 21:24 123 2
    58
    c언어 스택구현인데 뭔가 이상합니다..(결과창 있어요) 등교의고통 13/05/12 15:21 31 0
    57
    간단한 스택 개념문제인데 의사코드 제가 이해한게 맞을까요? [2] 등교의고통 13/05/12 09:12 59 0
    56
    너무화납니다ㅠㅠ [3] 등교의고통 13/04/20 15:27 52 1
    55
    오늘이 이굴형 생일이라길래 [2] 등교의고통 13/04/19 18:32 35 2
    54
    [C]2차원 배열 동적할당후 함수리턴을 하려고 하는데요... [3] 등교의고통 13/04/15 18:37 21 0
    53
    이중연결리스트는 나에게 무슨 원한이 있나요... [1] 등교의고통 13/04/14 12:39 29 0
    52
    [c?]과제 의사코드중 이해가 안가는게 몇개있어요. [2] 등교의고통 13/04/13 23:19 29 0
    51
    [c언어]fwrite함수 썻는데 텍스트 파일에 쓰레기값이 찍혀요 [5] 등교의고통 13/04/11 16:28 37 0
    50
    c언어 동적배열에 대해서 간단한 질문이있어요! 등교의고통 13/04/06 23:10 16 0
    49
    c언어 부분집합에 대해서 질문좀 올려도 될까요. [3] 등교의고통 13/04/04 17:14 35 0
    48
    구조체배열 포인터에 대해서 질문이 있습니다. [3] 등교의고통 13/03/29 19:40 15 0
    47
    간단한 c언어 조언좀요...(배열쪽?) [11] 등교의고통 13/03/19 16:58 40 0
    46
    힐더인데 14시그 마회s저주레기s 재밀1얼마정도해요? 등교의고통 13/03/14 22:18 19 0
    [1] [2] [3] [4]
    단축키 운영진에게 바란다(삭제요청/제안) 운영게 게시판신청 자료창고 보류 개인정보취급방침 청소년보호정책 모바일홈