XHAENEUNG 소스코드 왜 틀리다고 나오는지 이해가 안갑니다. choidongyun #include <iostream> using namespace std; int input; char one[100]; char oper; char oper1; char two[100]; char answer[100]; int transone = 0; int transtwo = 0; char numbers[11][10] = { "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" , "ten"}; int answeris(int answer111){ int check[11]; int zzz = 0; int gogo = 0; for (int i = 0; i < 11; i++){ if (numbers[answer111][i] == '\0'){ if (answer[i] == '\0'){ gogo = 0; } else{ return -1100; gogo = 1; } } } if (gogo == 0){ for (int i = 0; i < 9; i++){ check[i] = 0; } for (int i = 0; i < 11; i++){ if (numbers[answer111][i] == '\0'){ if (zzz == i){ return zzz; } else{ return -1100; } } else{ for (int j = 0; j < 11; j++){ if (numbers[answer111][i] == '\0' || answer[j] == '\0'){ break; } else if (numbers[answer111][i] == answer[j] && check[j] == 0){ check[j] = 1; zzz++; break; } } } } } return -1100; } int whatnumber(char a[]){ int end = 0; for (int i = 0; i < 11; i++){ int flag = 0; for (int j = 0; j < 11; j++){ if (numbers[i][j] == '\0'){ if (flag == j){ //cout << numbers[i] << " " << a << endl; return i; } } else{ if (a[j] == numbers[i][j]){ flag++; } } } } return -1; } int main(){ cin >> input; for (int i = 1; i <= input; i++){ cin >> one >> oper >> two >> oper1 >> answer; //cin >> one >> oper >> two ; int answer1 = 0; transone = whatnumber(one); transtwo = whatnumber(two); if (oper == '+'){ answer1 = transone + transtwo; } else if (oper == '-'){ answer1 = transone - transtwo; } else if (oper == '*'){ answer1 = transone * transtwo; } if (answer1 > 10){ cout << "No" << endl; } else{ int n1 = answeris(answer1); if (n1 == -1100){ cout << "No" << endl; } else{ cout << "Yes" << endl; } } for (int w = 0; w < 11; w++){ one[w] = 0; two[w] = 0; answer[w] = 0; } } return 0; } 9년 전
1개의 댓글이 있습니다. 맥커터 잘은 모르겠습니다만.. 뺄셈 했을때 음수가 나오는 예외처리 안해주신듯요 9년 전 link 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.
choidongyun
9년 전