C ++ iostream招聘人员

时间:2014-04-08 05:28:48

标签: c++ iostream

我在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的任务对我来说是一个痛苦的原因:/

1 个答案:

答案 0 :(得分:2)

要求说存在未知数量的测试,但您假设正好进行100次测试。将其更改为:

while (cin >> znak >> a >> b)
    cout << fcount(znak, a, b) << endl;
相关问题