C++ iostream 招聘程序员

C++ iostream recruitcoders

本文关键字:程序员 iostream C++      更新时间:2023-10-16

我在 recruitcoders.com 和我已经完成了所有这些,但在第一个中我只获得了 1/10:

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

输入: 测试数量未知。每个测试由对应于特定运算(+ 加法、- 减法、* 乘法、/除法和 % 模)和以下两个整数组成的字符符号组成。每个测试将用空格分隔,后跟换行符。测试次数不超过 100,结果小于 2^31。您可以假设不存在必须除以 0 的情况。

输出: 对于每个测试,您应该打印一个数字作为每个操作的结果。

例:

Input:
  + 7 9
  - 0 4
  * 5 6
  / 8 3
  % 5 2
Output:
  16
  -4
  30
  2
  1

我的代码:

#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)

我不是要求你提供更好的代码,我只是想知道我在这么简单的任务中在哪里失去了这么多点?有什么建议吗?我已经完成了所有 4 个任务,总得分为 28/40(1/10、10/10、10/10、7/10),所以得分为 1/10 的任务对我来说是一个痛苦的**:/

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

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