작성
·
132
0
#include <iostream>
#include <string>
using namespace std;
int main() {
string num;
char mw;
int i, age=0;
getline(cin, num);
int n = num.find("-", 1);
if(num[n+1] == '1') {
mw = 'M';
age = 2019 - (1900 + ((num[0]-48)*10 + (num[1]-48)));
}
else if( num[n+1] == '3') {
mw = 'M';
age = 2019 - (2000 + ((num[0]-48)*10 + (num[1]-48)));
}
else if(num[n+1] == '2') {
mw = 'W';
age = 2019 - (1900 + ((num[0]-48)*10 + (num[1]-48)));
}
else if(num[n+1] == '4') {
mw = 'W';
age = 2019 - (2000 + ((num[0]-48)*10 + (num[1]-48)));
}
cout << age+1 << " " << mw;
}
5번에서 제가 작성한 코드인데요. 채점이 Exception.Tostring오류로 아예 채점이 안돼서 직접 In,out 파일을 넣어가며 비교를 해봤는데 오류없이 정답이 잘 나오더라고요. 이 부분 혹시 확인 가능할까요?
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
이민주님, 5번 채점 파일에서 오류가 발생하는 상황 잘 읽어보았습니다.
코드를 보니 현재 년도를 고정값(2019)으로 설정하셔서 채점 시스템의 현재 년도와 맞지 않을 수 있습니다.
해당 부분을 동적으로 현재 년도를 받아 처리하도록 수정하시면 문제를 해결하실 수 있습니다.
예를 들면, <ctime>
라이브러리를 이용하여 아래와 같이 현재 년도를 가져올 수 있습니다.
#include <ctime>
//...
int currentYear = (int)time(NULL);
// 현재 연도 계산 로직 추가
그리고 예외 상황(Exception) 처리를 위해 입력 값 범위 등을 재확인하시고, 예외 상황에 대해 핸들링 코드를 추가해 보시는 것도 좋습니다.
만약 문제가 지속된다면, 해당 강의의 ‘질문하기’ 기능을 이용하셔서 강사님께 직접 문의하신 후 대응을 받으시길 권장드립니다.
도움이 필요하시다면 언제든지 질문해 주세요.