halxgene   4년 전

질문 내용은 대부분 문자열 비교에 대한 부분인 것 같습니다

strcmp를 사용해서 그런 문제는 발생할 것 같지 않을 것 같다고 생각되구요

서로 다른 길이의 이름, 두번째 글자만 다르게 하는 케이스 모두 잘 출력되는 것 같습니다.

점수부분도 딱히 통과하지 못할 이유가 없어보입니다;;

혹시, 입출력에 문제가 있는건지, 비교로직에 문제가 있는 건지..ㅜㅠ

고수분들의 도움이 절실합니다 ㅜㅠ 조언부탁드려요

djm03178   4년 전

kor, eng, math를 전부 int로만 바꾸면 맞습니다.

왜냐하면, 입력을 받을 때 %d라는 서식은 입력을 받는 변수가 int라고 가정하기 때문에 주어진 주소로부터 4바이트에 해당하는 영역에 값을 덮어쓰는데, 변수가 char라면 자신이 차지하는 1바이트를 넘어 주변의 다른 메모리까지 건드리게 되기 때문입니다.

halxgene   4년 전

으앗 답변 너무 감사합니다!


그런 것이군요.. 그냥 decimal이라고만 생각했는데..


%d서식이 4바이트를 사용하는 군요.. 입력값이 작다고 함부로 char을 쓰면 안되겠네요


잔머리의 비극입니다 ㅜㅠ

문제를 풀면서 입출력함수에 대해서 부족함을 계속해서 느끼게 되네요


ㅜㅠ 잘 기억해 두고 앞으로 더 공부해보겠습니다

다시한번 감사드려요~

댓글을 작성하려면 로그인해야 합니다.