현재 버전

문제를 푸는데는 sort 필요 없습니다. STUDENT2도 필요없습니다..... 일단 알아두시구요.


코드를 한차례 봤는데 딱히 문제가 되는 부분을 못 찾겠네요. 다음 부분들 하나씩 확인해보세요.


(1) i < 1000, sort(s2, 1000); 이면 안되겠죠. 어쨌든 저 자리엔 num이 들어가야할겁니다.

(2) s2를 malloc 할땐 siz가 아니라 num * sizeof(struct STUDENT2) 가 맞습니다.

(3) 사실 sort를 할 때 굳이 배열을 복사해서 할 필요가 없죠 (s[i].kor + s[i].math) < (s[j].kor + s[j].math) 해도 되거든요

(4) strcpy가 굉장히 위험(?)해보이네요. name[12]에 '\0'이 있다면 다행인데, 만약 없다면..? 어디까지 채워질까요? strncpy가 안전할 것 같구요.

(5) 만약 잘 돌아간다 하더라도 s2->name 이어야 최고득점일겁니다.

(6) 32번째 줄은 j = i + 1이 맞을 듯 하구요.

(7) 39번째 줄은 im이 i랑 다를때 하는게 맞을 것 같네요


파일에 문제가 있어서 깨지는거라면 (4)번에 설명한대로 strcpy -> strncpy로 해결되지 않을까 싶긴 합니다.


수정 이력

2021-06-11 02:23:29 에 아래 내용에서 변경 됨 #1

문제를 푸는데는 sort 필요 없습니다. STUDENT2도 필요없습니다..... 일단 알아두시구요.


코드를 한차례 봤는데 딱히 문제가 되는 부분을 못 찾겠네요. 다음 부분들 하나씩 확인해보세요.


(1) i < 1000, sort(s2, 1000); 이면 안되겠죠. 어쨌든 저 자리엔 num이 들어가야할겁니다.

(2) s2를 malloc 할땐 siz가 아니라 num * sizeof(struct STUDENT2) 가 맞습니다.

(3) 사실 sort를 할 때 굳이 배열을 복사해서 할 필요가 없죠 (s[i].kor + s[i].math) < (s[j].kor + s[j].math) 해도 되거든요

(4) strcpy가 굉장히 위험(?)해보이네요. name[12]에 '\0'이 있다면 다행인데, 만약 없다면..? 어디까지 채워질까요? strncpy가 안전할 것 같구요.

(5) 만약 잘 돌아간다 하더라도 s2->name 이어야 최고득점일겁니다.

(6) 32번째 줄은 j = i + 1이 맞을 듯 하구요.

(7) 39번째 줄은 im이 i랑 다를때 하는게 맞을 것 같네요


파일에 문제가 있다면 strcpy -> strncpy로 해결되지 않을까 싶긴 합니다.