질문있습니다

Parkjeongsoo Reply 9 years 35 weeks ago
#include <stdio.h> #include <stdlib.h> int main() { int c; while((c=getchar()) !=EOF) { if ('97' <=c && c<= '122') {putchar(c); } else if ('65' <=c && c<= '90') {putchar(c); } else if ('48' <=c && c<= '57') {putchar(c); } else { printf("\n"); } } } 이 문제를 아스키코드를 이용하여서 0-9,a-z,A-Z로 다음처럼 나누어서 하려는데 아얘 동작자체가 이상하게 되네요. 무엇이 문제인가요?
booksky Reply 9 years 35 weeks ago
안녕하세요. 조교 이은헌입니다. 문제가 되는 부분은 if 안에 들어가는 조건입니다. '0'~'9'에 해당되는 아스키값이 48~57이고 'a'~'z'에 해당되는 아스키값이 65~90이고 'A'~'Z'에 해당되는 아스키값이 97~122이라서 조건을 저렇게 지정하신 것 같습니다. 아스키코드는 숫자값과 이에 해당되는 문자로 이루어져있습니다. 컴퓨터에서 숫자 48을 보면 이것을 문자 '0'으로 인식하고, 65를 보면 'a'로 인식하는 식으로 작동하는 것이지요. ' '안에 들어가는 것은 문자를 의미합니다 '0'은 실질적으로 컴퓨터에서 48로 인식하고 0은 말 그대로 0으로 인식하는 것이지요. '48' ,'65' 이런 식의 표현은 존재하지 않습니다.
persuade Reply 9 years 35 weeks ago
안녕하세요, 조교 이태민입니다. presentation error는 공백 혹은 줄바꿈이 추가적으로 들어갔거나, 덜 들어갔을때 발생합니다. 줄바꿈이 더 들어가거나 적게 들어간 부분이 없는지 확인 바랍니다. ^^