XHAENEUNG 문제 질문드립니다. lerin 이틀째 XHAENEUNG을 계속 풀고 있는데 오답이 뜨는 원인을 모르겠습니다 ㅠㅠ. 주어진 예제가 아닌 다른 예제도 넣어봤지만 딱히 오답을 찾을수가 없어서 글을 써봅니다. 논리 * 문자열로 입력된 수를 정렬한 후 0에서 10까지의 정렬된 문자열과 같은지 확인하여 숫자로 변환. 변환된 수를 가지고 계산식이 맞는지 검사 #include <iostream> #include <string.h> int convertorForAnswer(int value, char answer[]) { char temp; for (int i = 1; i < value; i++) { int j = i; temp = answer[j]; while (--j >= 0 && temp < answer[j]) { answer[j + 1] = answer[j]; } answer[j + 1] = temp; } if (!strcmp(answer, "eorz")) return 0; else if (!strcmp(answer, "eno")) return 1; else if (!strcmp(answer, "otw")) return 2; else if (!strcmp(answer, "eehrt")) return 3; else if (!strcmp(answer, "foru")) return 4; else if (!strcmp(answer, "efiv")) return 5; else if (!strcmp(answer, "isx")) return 6; else if (!strcmp(answer, "eenvs")) return 7; else if (!strcmp(answer, "eghit")) return 8; else if (!strcmp(answer, "einn")) return 9; else if (!strcmp(answer, "ent")) return 10; return -1; } int main() { int value = 0; std::cin >> value; while (value) { char firstNumber[6] = {}; std::cin >> firstNumber; char operation = ' '; std::cin >> operation; char secondNumber[6] = {}; std::cin >> secondNumber; char operation1 = ' '; std::cin >> operation1; char answerNumber[11] = {}; std::cin >> answerNumber; int first = 0; int second = 0; int answer = 0; int firstLength = 0; int secondLength = 0; int answerLength = 0; firstLength = strlen(firstNumber); secondLength = strlen(secondNumber); answerLength = strlen(answerNumber); first = convertorForAnswer(firstLength, firstNumber); second = convertorForAnswer(secondLength, secondNumber); answer = convertorForAnswer(answerLength, answerNumber); switch (operation) { case '+': { first += second; } break; case '-': { first -= second; } break; case '*': { first *= second; } break; } if (first > 10 || first < 0 || first != answer) { std::cout << "No\n"; } else { std::cout << "Yes\n"; } --value; } return 0; } 10년 전
1개의 댓글이 있습니다. Being convertorForAnswer() 함수에 오류가 있습니다. 코드에 어떤 상수(문자열)을 넣을 때는 항상 주의하시고, 같은 실수를 반복하지 않으시려면 어떻게 하면 좋을지도 생각해보시면 공부가 될 것 같습니다. 10년 전 link 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.
lerin
이틀째 XHAENEUNG을 계속 풀고 있는데 오답이 뜨는 원인을 모르겠습니다 ㅠㅠ.
주어진 예제가 아닌 다른 예제도 넣어봤지만 딱히 오답을 찾을수가 없어서 글을 써봅니다.
논리
* 문자열로 입력된 수를 정렬한 후 0에서 10까지의 정렬된 문자열과 같은지 확인하여 숫자로 변환. 변환된 수를 가지고 계산식이 맞는지 검사
10년 전