XHAENEUNG 문제질문입니다. sea2003 #include <iostream> #include <string> #include <algorithm> using namespace std; int main(void) { int testNum; cin>>testNum; string num[11] = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten"}; string sort_num[11] = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten"}; for(int i=0;i<11;++i) { sort(sort_num[i].begin(), sort_num[i].end()); } while(testNum--) { string left_side_str, right_side_str, answer_str; char operation; char equal; cin>>left_side_str >> operation >> right_side_str >> equal >> answer_str; int left_side_num, right_side_num, answer_num; sort(answer_str.begin(), answer_str.end()); for(int i=0;i<11;++i) { if(!left_side_str.compare(num[i])){ left_side_num = i; break; } } for(int i=0;i<11;++i) { if(!right_side_str.compare(num[i])){ right_side_num = i; break; } } for(int i=0;i<11;++i) { if(!answer_str.compare(sort_num[i])){ answer_num = i; break; } } int correct_answer; if(operation == '+') correct_answer = left_side_num + right_side_num; else if(operation == '-') correct_answer = left_side_num - right_side_num; else if(operation == '*') correct_answer = left_side_num * right_side_num; if(correct_answer > 10 || correct_answer < 0) cout<<"No"<<endl; else if(correct_answer == answer_num) cout<<"Yes"<<endl; else cout<<"No"<<endl; } } 계속 살펴보는데 뭐가 틀렸는지 모르겠습니다 ㅠㅠ string num[11]이 left_side_str와 right_side_str를 비교하는 문자열이고 string sort_num[11]이 answer_str과 정렬후 비교하는 문자열입니다. 어느부분이 문제일까요? ㅠㅠ 10년 전
2개의 댓글이 있습니다. Being answer_str이 어디에도 해당되지 않을 때, answer_num의 값이 설정되지 않게 되는데, 이 경우의 동작은(즉, 초기화되지 않은 값에 대한 접근은) 보장할 수 없습니다. 실제로는, 많은 경우 직전 루프 반복에서 살아있던 answer_num의 값을 그대로 가지고 있습니다. 10년 전 link sea2003 감사합니다!! 생각도 못했었는데 ㅠㅠㅠ 다시한번 감사드립니다~~! 10년 전 link 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.
sea2003
계속 살펴보는데 뭐가 틀렸는지 모르겠습니다 ㅠㅠ
string num[11]이 left_side_str와 right_side_str를 비교하는 문자열이고
string sort_num[11]이 answer_str과 정렬후 비교하는 문자열입니다.
어느부분이 문제일까요? ㅠㅠ
10년 전