정렬부분 도와주세요...
감춰왔던
질문 제목 : 정렬부분 도와주세요... 기존 head값을 이용하여 비교 후 head값을 복사한 headtemp에 정렬리스트 구현 후 출력, 그리고 메모리 free
질문 내용 :
프로그램 초기 구동시 파일값들을 읽어서 이중연결리스트로 구성하였습니다.
파일 내용은 이름, 나이, 성적 입니다.
ex) 1 1 1
3 3 3
2 2 2
이것을 출력시에 점수기준 오름차순으로 정렬을 하였습니다.
하지만 head값을 가지고 정렬을 해버려서 ㅡ; 리스트값이 변하는 상황이..그래서 head값을 복사할 구조체를 생성하여 그 복사한 값으로 점수기준 오름차순 출력을 해야하는데
도통 안되네요...
있는내공 다 걸겠습니다 도와주세요 ㅠㅠ
------------------------구조체
typedef struct maje{
char sname[20];
char sage[10];
char sscore[10];
struct maje *r;
struct maje *l;
}maje;
----------------------------------- 헤더파일 동적메모리 할당 함수
//headtemp가 출력 정렬담당할 임시저장 헤더잆니다...
void setmaje(void)
{
head = (maje *)malloc(sizeof(maje));
headtemp = (maje *)malloc(sizeof(maje));
head-r = null;
head-l = null;
headtemp-r = null;
headtemp-l = null;
}
-------------------------초기구동시 파일값 구조체에 리스트화 시키는 함수
void setfmaje(void)
{
sfiler();
maje *newdata, *cur, *temp;
cur = head;
while(!feof(fp))
{
newdata = (maje *)malloc(sizeof(maje));
if(fscanf(fp, %s %s %s, newdata-sname, newdata-sage, newdata-sscore) == -1)
{
free(newdata);
newdata = null;
break;
}
newdata-r = null;
newdata-l = null;
if(cur== null)
{
head-r = newdata;
cur = newdata;
}
else
{
while(cur && cur-r)
{
cur = cur-r;
&nbsbsp; }
cur-r = newdata;
newdata-l = cur;
newdata-r = null;
}
}
fclose(fp);
}
-----------------출력
void soutput(void)
{
maje *shead = head-r;
maje *sr = shead-r;
maje *htemp;
maje *stemp;
htemp = headtemp;
stemp = (maje *)malloc(sizeof(maje));
for(; shead-r != null; shead = shead-r)
{
for(sr = shead-r; sr; sr = sr-r)
{
if(atoi(shead-sscore) atoi(sr-sscore))
{
stemp = sr;
}
}
htemp-r = stemp;
stemp-r = null;
}
while(htemp-r != null)
{
printf(사원 이름 : %s\n, htemp-sname);
printf(사원 나이 : %s\n, htemp-sage);
printf(사원 점수 : %s\n\n, htemp-sscore);
htemp = htemp-r;
}
htemp = htemp-r;
while(htemp-r != null)
{
free(htemp-r);
htemp = htemp-r;
}
}
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2700368 | if에 관해서 질문이요... | Orange | 2025-07-04 |
2700339 | 이거 결과값이 왜이런건지.. (4) | 그댸와나 | 2025-07-04 |
2700313 | 파일 읽어서 저장하는데 빈파일일 경우 문재가 발생하네요.. (2) | 크나 | 2025-07-03 |
2700287 | 구조체 동적할당 연습을 하는데 오류가 뜹니다...(해결) (3) | 아련나래 | 2025-07-03 |
2700264 | 문자와 숫자 동시에 입력??? | 글고운 | 2025-07-03 |
2700236 | txt파일로만 쓰고 읽게 하려면 어떻게 해야 하나요..?? (8) | 미국녀 | 2025-07-03 |
2700211 | 전위 연산자 (2) | 어른처럼 | 2025-07-02 |
2700183 | C에서 파일이름을 받고, 그 파일의 사이즈를 출력해줘야하는데 내용이 출력이 안되네요 ;ㅅ; | 피스케스 | 2025-07-02 |
2700150 | 꼭좀 도와주세요ㅠㅠㅠ | 호습다 | 2025-07-02 |
2700095 | 연산문제...질문... | 오빤테앵겨 | 2025-07-01 |
2700070 | while문 , 3의배수 출력하는 프로그램좀 짜주세욤. | 횃불 | 2025-07-01 |
2700041 | 초보인데요 ㅎ 배열안에 배열을 집어넣을수 있나요?? | 헛장사 | 2025-07-01 |
2700012 | 배열// (1) | 전갈자리 | 2025-07-01 |
2699895 | 무한루프에 빠집니다.!! 해결좀부탁드려요 (10) | 선아 | 2025-06-30 |
2699842 | 질문을 너무 많이 하네여.....죄송.... (2) | 해님꽃 | 2025-06-29 |
2699816 | 오류 질문입니다.. (1) | 해비치 | 2025-06-29 |
2699763 | 질문입니다 ! 꼭 좀 도와주세요ㅠㅠ (2) | 미라 | 2025-06-28 |
2699555 | c언어 다항식을 입력을 했는데 왜 출력이 안될까요? | 피스케스 | 2025-06-27 |
2699528 | C언어 포인터연산 질문입니다. (3) | 안녕나야 | 2025-06-26 |
2699476 | 끌어올림;;달력 짜봤는데요 이 소스 줄일 수 있나요? - 스샷첨부 (2) | 클라우드 | 2025-06-26 |