【问题标题】:C++ iostream recruitcoders [closed]C ++ iostream招聘编码器[关闭]
【发布时间】:2014-04-08 05:28:47
【问题描述】:

我在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

我的代码:

#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;
    }
}

此代码运行良好,只是被 RECRUITCODERS 低估了 (1/10)

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

【问题讨论】:

  • 不清楚你在问什么。你到底在问我们什么?为什么有人给你1/10的分数?你应该问他们。
  • 创建更多测试用例,尤其是边缘用例,看看你的代码哪里不正确。
  • 我的意思是有 4 个问题要解决,而我在上面的计算器中只得了 1/10。所以我认为这是错误的。我在问你,为什么它是错误的。编辑:代码正在运行,问题是低评级(1/10)。我想知道,我应该怎么做才能使它更专业?
  • @sashoalm 我很想问他们为什么只有 1/10 但它是在线招聘机器人,只是编译代码并返回分数。
  • 所以你问我们。嗯,答案是“我们应该怎么知道?”我们不是他们。你甚至有失败的测试吗?

标签: c++ iostream


【解决方案1】:

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

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

【讨论】:

  • 谢谢,你是对的,我认为如果在控制台上混合输入和输出会有问题:例如。 + 2 2 4 - 0 4 -4 * 2 4 8 但您的解决方案工作正常。无论如何,最多 100 次测试也误导了我,谢谢您的回复:)
猜你喜欢
  • 2013-09-09
  • 2010-09-16
  • 2010-12-20
  • 2023-04-02
  • 1970-01-01
  • 1970-01-01
  • 2021-07-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多