5개의 댓글이 있습니다.
-
-
kriii -
원하신대로 하려고 했다면 아래와 같이 하셨어야합니다.
#include <stdio.h> #include <string.h> int StringToInt(char *tmp){ if(!strcmp(tmp, "zero")) return 0; else if(!strcmp(tmp, "one")) return 1; else if(!strcmp(tmp, "two")) return 2; else if(!strcmp(tmp, "three")) return 3; else if(!strcmp(tmp, "four")) return 4; else if(!strcmp(tmp, "five")) return 5; else if(!strcmp(tmp, "six")) return 6; else if(!strcmp(tmp, "seven")) return 7; else if(!strcmp(tmp, "eight")) return 8; else if(!strcmp(tmp, "nine")) return 9; else if(!strcmp(tmp, "ten")) return 10; return -1; } void IntToString(char* num, int tmp){ if(tmp == 0) sprintf(num, "zero"); else if(tmp == 1) sprintf(num, "one"); else if(tmp == 2) sprintf(num, "two"); else if(tmp == 3) sprintf(num, "three"); else if(tmp == 4) sprintf(num, "four"); else if(tmp == 5) sprintf(num, "five"); else if(tmp == 6) sprintf(num, "six"); else if(tmp == 7) sprintf(num, "seven"); else if(tmp == 8) sprintf(num, "eight"); else if(tmp == 9) sprintf(num, "nine"); else if(tmp == 10) sprintf(num, "ten"); } void sorting(char* tmp){ int len = strlen(tmp); for(int i=0; i<len-1; i++){ for(int j=i+1; j<len; j++){ if(tmp[i]>tmp[j]){ char swap; swap = tmp[i]; tmp[i] = tmp[j]; tmp[j] = swap; } } } } void calculate(char *check, char* num1, char* num2, char oper, char* answer){ int n1 = StringToInt(num1); int n2 = StringToInt(num2); int result; char stresult[6]; switch(oper){ case '+': result = n1 + n2; break; case '-': result = n1 - n2; break; case '*': result = n1 * n2; break; case '/': result = n1 / n2; break; } IntToString(stresult,result); sorting(stresult); sorting(answer); if(result < 0 || result>10) strcpy(check, "No"); else if(!strcmp(stresult, answer)) strcpy(check, "Yes"); else strcpy(check, "No"); } int main() { int input; char check[1000][4]; scanf("%d", &input); for(int i=0; i<input; i++){ char num1[6], num2[6], answer[11], oper; scanf("%s %c %s = %s", num1, &oper, num2, answer); calculate(check[i], num1, num2, oper, answer); } for(int i=0; i<input; i++){ printf("%s\n", check[i]); } return 0; }
10년 전 link
-
-
정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.
sjc1117
제가 예제를 넣어서 해보면 답이 잘나오는데 채점하면 오답이 뜹니다.
답과 글자의 순서 관계없이 각 알파벳만 다 들어가있으면 정답으로 처리하는 것이지 않습니까?
제가 잘못알고있는건가요
10년 전