10825번 - 국영수
질문 내용은 대부분 문자열 비교에 대한 부분인 것 같습니다
strcmp를 사용해서 그런 문제는 발생할 것 같지 않을 것 같다고 생각되구요
서로 다른 길이의 이름, 두번째 글자만 다르게 하는 케이스 모두 잘 출력되는 것 같습니다.
점수부분도 딱히 통과하지 못할 이유가 없어보입니다;;
혹시, 입출력에 문제가 있는건지, 비교로직에 문제가 있는 건지..ㅜㅠ
고수분들의 도움이 절실합니다 ㅜㅠ 조언부탁드려요
kor, eng, math를 전부 int로만 바꾸면 맞습니다.
왜냐하면, 입력을 받을 때 %d라는 서식은 입력을 받는 변수가 int라고 가정하기 때문에 주어진 주소로부터 4바이트에 해당하는 영역에 값을 덮어쓰는데, 변수가 char라면 자신이 차지하는 1바이트를 넘어 주변의 다른 메모리까지 건드리게 되기 때문입니다.
으앗 답변 너무 감사합니다!
그런 것이군요.. 그냥 decimal이라고만 생각했는데..
%d서식이 4바이트를 사용하는 군요.. 입력값이 작다고 함부로 char을 쓰면 안되겠네요
잔머리의 비극입니다 ㅜㅠ
문제를 풀면서 입출력함수에 대해서 부족함을 계속해서 느끼게 되네요
ㅜㅠ 잘 기억해 두고 앞으로 더 공부해보겠습니다
다시한번 감사드려요~
댓글을 작성하려면 로그인해야 합니다.
halxgene 4년 전
질문 내용은 대부분 문자열 비교에 대한 부분인 것 같습니다
strcmp를 사용해서 그런 문제는 발생할 것 같지 않을 것 같다고 생각되구요
서로 다른 길이의 이름, 두번째 글자만 다르게 하는 케이스 모두 잘 출력되는 것 같습니다.
점수부분도 딱히 통과하지 못할 이유가 없어보입니다;;
혹시, 입출력에 문제가 있는건지, 비교로직에 문제가 있는 건지..ㅜㅠ
고수분들의 도움이 절실합니다 ㅜㅠ 조언부탁드려요