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이 되서 역순으로 아예 다바뀌는거 같은데
어떻게 손봐야될지 감이 안오네요 ㅠㅠ 살려주세요.