#### 原题链接:[题目486 - ACM在线评测系统](http://nyoj.top/problem/486 "nyoj在线评测")
#### 原题内容:
**题目描述:**szhhck有一个五年前买的旧计算器。他发现旧计算器仅能计算这样的表达式:A-B、A+B、A*B、A/B、A%B。由于太旧并且长时间没有使用,旧计算器有时可能得出错误结论。你的任务是写个程序去检测旧计算器计算的答案正确与否。
**输入描述:**第一行输入N代表有N个测试用例。接着有N行作为N个用例,每行包含一个这样的等式A op B = C(A、B和C都是整型数,并且op只能为+、-、*、/或%)。样例输入里有更多细节。
**输出描述:**对于每个测试用例,如果等式非法(除零或模零),你将输出“Input Error”。如果等式正确,输出“Accept”;如果等式不正确输出“Wrong Answer”,并在一行后输出正确答案。
**样例输入:**
5
1+2=32
2-3=-1
4*5=20
6/0=122
8%9=0
**样例输出:**
Wrong Answer
3
Accept
Accept
Input Error
Wrong Answer
8
#### 解题思路:
用格式输入函数读取形如"%d%c%d%c%d"的串,再分情况判断计算器的计算结果。
#### 注意事项:
除零判错。
#### 参考代码:
```c
#includeint main(){
int N,x,y,z;
char op,c;
scanf("%d",&N);
while(N--){
scanf("%d%c%d%c%d",&x,&op,&y,&c,&z);//每次输入的五部分都在同一行
if((op=='/'||op=='%')&&y==0){
puts("Input Error");
continue;//继续读取下一行等式
}
if(op=='+'){
if(x+y==z) printf("Accept\n");
else printf("Wrong Answer\n%d\n",x+y);
}else if(op=='-'){
if(x-y==z) printf("Accept\n");
else printf("Wrong Answer\n%d\n",x-y);
}else if(op=='*'){
if(x*y==z) printf("Accept\n");
else printf("Wrong Answer\n%d\n",x*y);
}else if(op=='/'){
if(x/y==z) printf("Accept\n");
else printf("Wrong Answer\n%d\n",x/y);
}else{
if(x%y==z) printf("Accept\n");
else printf("Wrong Answer\n%d\n",x%y);
}
}
}
```
0.0分
1 人评分