구조체 정렬문제입니다. 파일입출력사용
여우비
안녕하세요. txt파일로 이름하고 점수가 아무렇게나 저장되어있습니다. 이것을 버블을 사용하여큰 점수부터 출력하려고 하는데
출력하면 정렬이되지 않고 그냥 순서대로 나옵니다.. ㅠㅠ
질문 내용 :
#include stdio.h
#define MAX 10
typedef struct student
{
char name[10];
int score;
}STUDENT;
void main()
{
STUDENT stu[MAX];
int i,j, temp;
FILE *fp = fopen(practice.txt , r);
if(fp == NULL)
{
puts(open error!);
return;
}
for(i=0; i4; i++)
{
fscanf(fp, %s %d , stu[i].name, &(stu[i].score));
//if(stu[i].score = stu[i+1].score)
for(j=0 ; j = i-1 ; j++) //가르쳐주신대로 포문안에 이프문을 넣었습니다.
{
if(stu[j].score = stu[j+1].score)
{
temp = stu[j].score;
stu[j].score = stu[j+1].score;
stu[j+1].score = temp;
}
}
printf(%s %d, stu[j].name, stu[j].score);
printf(\n);
}
}
-
갅지돋는슬아
감사합니다. 그런데 TXT에
LEE 30
KIM 50
JUNG 20
HWANG 90 이런식으로 저장이 되었는데 출력하면 30, 30, 20, 20 이러케 나와요.. 가르쳐주신 내용은 적용시켰구요 -
귀염포텐
if 문을 for 문 안에 넣어야겠네요. i 를 j 로 바쒀서...