문제가 여러명의 이름 학번 점수가 적힌 파일을 입출력하고
점수가 높은 순대로
이름 학번 점수(이걸 구조체로 해서) 통째로 이렇게 바꾸는건데
내가 임의로 짠 파일에 이렇게 되어 있는데
김민수 11111111 85
이진영 12222222 45
홍길동 13333333 70
송하나 14444444 12
한다빛 15555555 46
결과창에는
김민수 11111111 85
홍길동 13333333 70
한다빛 15555555 46
이진영 12222222 45
송하나 14444444 12
이렇게 바껴야되는거지 ㅇㅇ
아 근데 스왑을 어떤식으로 해야될지 전혀 감이 안잡혀서
능력 있는 프로그래밍 갤러형들 도와줘요 ㅠㅠ
#include <stdio.h>
#include <stdlib.h>
struct st
{
char n[5];
int m, f;
};
void swap()
{
}
void main()
{
FILE *ifp;
ifp = fopen("C:\\Users\\윾동\\Downloads\\indat.txt", "r");
st a[5];
int c = 0, i, count;
for (i = 0; fscanf(ifp, "%s %d %d", &a[i].n, &a[i].m, &a[i].f) != EOF; i++)c++;
{
fscanf(ifp, "%s %d %d", &a[i].n, &a[i].m, &a[i].f);
}
printf("정렬 전\n");
for (i = 0; i < 5; i++)
{
printf("%s %d %d\n", a[i].n, a[i].m, a[i].f);
}
printf("정렬 후\n");
for (i = 0; i < 5; i++)
{
printf("%s %d %d\n", a[i].n, a[i].m, a[i].f);
}
fclose(ifp);
}
정렬 알고리즘을 묻는거야? 그냥 버블 정렬 하지? 구조체는 그냥 일반 변수 스왑하듯이 스왑하면됨
아 함수로 포인터 넘겨줘서 할꺼면 memcpy
2중포인터 넘겨서 한번씩만 역참조해서 뒤집으셈
memcpy 안 쓰고 걍 대입연사자로 될걸