XHAENEUNG 질문드립니다. tyjk32 #include <stdio.h> #include <string.h> int numReturn(char *alphabet, char (*s)[11]); int calc(int n1, int n2, char op); void strCompare(char *s1, char *s2); int main(void) { int t, i; char str[11][11] = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten"}; int num1, num2, num3; char n1[11], n2[11], n3[11]; char op1, op2; int result; scanf("%d", &t); for(i = 0; i < t; i++) { scanf("%s %c %s %c %s", n1, &op1, n2, &op2, n3); num1 = numReturn(n1, str); num2 = numReturn(n2, str); result = calc(num1, num2, op1); if(result > 10) { printf("No\n"); continue; } strCompare(str[result], n3); } return 0; } int numReturn(char *alphabet, char (*s)[11]) { int i; for(i = 0; i < 11; i++) { if(strncmp(s[i], alphabet, strlen(alphabet)) == 0) { break; } } return i; } int calc(int n1, int n2, char op) { int result; switch(op) { case '+' : result = n1 + n2; break; case '-' : result = n1 - n2; break; case '*' : result = n1 * n2; break; } return result; } void strCompare(char *s1, char *s2) { int str1[26] = {0}; int str2[26] = {0}; int i; for(i = 0; i < 11; i++) { if(s1[i] == '\0' || s2[i] == '\0') { break; } if(s1[i] >= 97 && s1[i] <= 122) { str1[s1[i] - 97]++; } if(s2[i] >= 97 && s2[i] <= 122) { str2[s2[i] - 97]++; } } for(i = 0; i < 26; i++) { if(str1[i] != str2[i]) { break; } } if(i == 26) { printf("Yes\n"); } else { printf("No\n"); } } 댓글에 있는 모든 경우에 정상적으로 출력하는데도 오답 처리가 되네요.. 도움좀 부탁드리겠습니다 ㅠㅠㅠ 10년 전
2개의 댓글이 있습니다. hyunhwan 계산의 결과가 0보다 작을 경우가 처리되지 않은 것 같아 보입니다. 10년 전 link tyjk32 헉.. 그렇네요.. 감사합니다 ^^ 10년 전 link 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.
tyjk32
댓글에 있는 모든 경우에 정상적으로 출력하는데도
오답 처리가 되네요..
도움좀 부탁드리겠습니다 ㅠㅠㅠ
10년 전