게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
C언어 링크드리스트 질문이요! ㅠㅠ
게시물ID : programmer_3827짧은주소 복사하기
작성자 : 개나소나
추천 : 0
조회수 : 376회
댓글수 : 2개
등록시간 : 2014/06/07 19:01:38
옵션
  • 본인삭제금지
year, month day는 정수형을 받고
info는 gets로 문자열을 받았습니다.
 
그리고 이걸
 
typedef struct days{
 int year, month, day;
 char content[10000];
 struct days *next;
}dates;
 
이렇게 선언된 dates *sc_head; 라는 구조체에 넣어주려고 하는데
 
입력을 받을때 판단을 해서 year month day숫자에 오름차순이 되도록 정렬을 하여 sc_head에 저장을 하려고 밑에와 같이 코드를 짯스빈다.
 
 
void add_sch(int year, int month, int day, char* info)
 {
 dates *t;
 dates *s;
 dates *temp;
 t=(dates*)malloc(sizeof(dates));
 t->year =year;
 t->month = month;
 t->day = day;
 strcpy(t->content,info);
 
 if(sc_head->next == sc_tail)
 {
  sc_head->next = t;
   t->next = sc_tail;
 }
 else
 {
  s=sc_head;
  while((s->year>year)&&(s->next !=sc_tail))
  {
      s=s->next;
  }
  while ((s->month>month)&&(s->next !=sc_tail))
  {
       s=s->next;
  }
  while((s->day>day)&&(s->next !=sc_tail))
{
      s=s->next;
  }
  temp=s->next;
  s->next=t;
  t->next = temp;
 }
}
 
 
 
 
근데 정렬이 안되고 그냥 아예 입력된게 역순으로 나와요...;;
 
평상시 같으면 1번,2번,3번 순서로 입력을 했으면 출력시에서 1번,2번,3번 순서로 나오는데
위에 코드로 실행을 한 후에 출력을 하면
3번 2번 1번으로 나오네요.
 
뭔가 swap이 되고잇긴 한거 같은데 숫자 대소관계와 상관없이 그냥 swap이 되서 역순으로 아예 다바뀌는거 같은데
 
어떻게 손봐야될지 감이 안오네요 ㅠㅠ 살려주세요.
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호