2014-04-08 43 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個測試的最大數量誤導我,不管怎樣,謝謝你的迴應:) –