我在recruitcoders.com上发现了4个任务 我已经完成了所有这些,但在第一个中我只得到了1/10:
编写一个程序,作为一个简单的计算器,支持五种操作:加法,减法,乘法,除法和模数。
输入: 测试数量未知。每个测试由一个字符符号组成,该符号对应于特定操作(+加法, - 减法,*乘法,/除法和%模数)和两个后续整数。每个测试将用空格分隔,然后换行。测试次数不超过100,结果小于2 ^ 31。您可以假设没有必须除以0的情况。
输出: 对于每个测试,您应该打印一个数字,作为每个操作的结果。
示例:
Input:
+ 7 9
- 0 4
* 5 6
/ 8 3
% 5 2
Output:
16
-4
30
2
1
mycode的:
#include <iostream>
using namespace std;
int fcount(char, int, int);
int main() {
char znak;
long a, b;
long* wynik=new long[100];
for(char i=0;i<100;i++){
cin>>znak>>a>>b;
wynik[i]=fcount(znak,a,b);
}
for(char i=0;i<100;i++)
cout<<wynik[i]<<endl;
return 0;
}
int fcount(char znak, int a, int b){
switch(znak){
case '+':
return a+b;
case '-':
return a-b;
case '*':
return a*b;
case '/':
return a/b;
case '%':
return a%b;
}
}
这个代码工作得很好,只是被招募人员搞砸了(1/10)
我不是要求你提供更好的代码,我只是想知道在这么容易的任务中我在哪里失去了这么多分?有什么建议?我已经完成了总共28/40得分的所有4个任务(1 / 10,10 / 10,10 / 10,7 / 10),所以得分1/10的任务对我来说是一个痛苦的原因:/ / p>
答案 0 :(得分:2)
要求说存在未知数量的测试,但您假设正好进行100次测试。将其更改为:
while (cin >> znak >> a >> b)
cout << fcount(znak, a, b) << endl;