2014-04-08 12 views
-3

我已经找到4个任务上recruitcoders.com和 我已经完成了所有的人,但在第一个我只有1/10得分:C++的iostream recruitcoders

编写一个程序,可以作为一个简单的计算器支持五种操作:加法,减法,乘法,除法和模。

输入: 有未知数量的测试。每个测试由与特定操作(+加法, - 减法,*乘法,/除法和%模)对应的单字符符号和两个下列整数组成。每个测试将用空格分隔,然后换行。测试次数不超过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; 
    } 
} 

这个代码是做工精细,它只是被低估BY RECRUITCODERS(1/10)

我不是问你为了更好的代码,我只是想知道我在哪里放松这么简单的任务中的这么多点?有什么建议么?我已经完成了全部4项任务,总得分28/40(1/10,10/10,10/10,7/10),所以1/10得分的任务对我来说是痛苦的**/

+1

现在还不清楚你在问什么。你到底在问什么?为什么有人给你1/10分?你应该问问他们。 – sashoalm

+0

创建更多测试用例,尤其是边缘用例,并查看代码的不正确位置。 –

+0

我的意思是有4个问题需要解决,而我的计算器上面只有1/10的得分。所以我认为这是错误的。我在问你,为什么这么错。 编辑:代码工作,问题是低评级(1/10)。 我想知道,我该怎么做才能让它更专业? –

回答

2

要求说有一个未知数量的测试,但是您假设正好有100个测试。将其更改为:

while (cin >> znak >> a >> b) 
    cout << fcount(znak, a, b) << endl; 
+0

谢谢,你是对的,我认为如果输入和输出混合在控制台上会出现问题: 例如。 '+ 2 2 - 0 4 -4 * 2 4 8' 但您的解决方案正常工作。 也有100个测试的最大数量误导我,不管怎样,谢谢你的回应:) –