c++ - 为什么这些函数在 75% 的时间内给出正确的输出?

标签 c++ algorithm function

(此函数是更大程序的一部分,但独立于其他函数运行。)

好吧,我有一件功能夹克,给定 3 个输入,它只有 75% 的时间产生正确的输出。

我不知道输入,但我知道输出是错误的。

我不知道哪里出了问题,也不知道如何解决。

我假设它是每次将函数提交到 myProgrammingLab 时输入的 12 个值。

所以可能是特定输入的问题。

谢谢。

描述:

夹克尺寸(胸围英寸)= 高度乘以体重除以 288,然后 30 岁以上每 10 年增加 1/8 英寸进行调整。(请注意,调整仅在整整 10 年后进行。因此,30 到 39 岁之间没有调整,但 40 岁增加了 1/8 英寸。)


编辑:将 tmp 更改为 float 仍然会产生错误。

 float jacket(float weight, float height, int age) {
        double result = (height * weight) / 288;
        /*now for every 10 years past 30 add (1/8) to the result*/
        if((age - 30) > 0){
            int temp = (age - 30) / 10;
            result = result + (temp * .125);
        }
        return result;
    }

这是同一个函数,针对同一个问题用不同的方式编写。

float jacket(double jWeight, double jHeight, int jAge)
{
    double jSize = ((jWeight*jHeight)/288.0);

    int i = jAge/10 - 3;

    if((jAge/10)>3)
        jSize += 0.125*i;
    
    return jSize;
}

这是有同样问题的第三个函数

float  jacket(double weight, double height, int age)    

// calculates the jacket size, adjusting for age in increments
// of ten years, if customer is over 30 years of age.
{
    int age_factor;
    double j_size; 
    j_size = (height*weight)/288.0;
    if (age >=30) 
    {
    age_factor = (age-30)/10; //note possible truncation.
    j_size += age_factor/8.0;
    }
    return j_size;
}

第一次调用该函数时,它会产生不正确的返回值。剩下3次调用返回值正确。

观察:

Expected Output:

jacket·size·=·24.17↵

jacket·size·=·40.00↵

jacket·size·=·46.04↵

jacket·size·=·35.42↵

Actual Output:

jacket·size·=·24.29↵

jacket·size·=·40.00↵

jacket·size·=·46.04↵

jacket·size·=·35.42↵

*给定相同输入的所有三个函数产生相同的输出

最佳答案

int temp = (age - 30) / 10;

通过将 temp 设为 int,由于截断,您将得到不正确的结果。尝试使用 float 代替。

关于c++ - 为什么这些函数在 75% 的时间内给出正确的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31063332/

相关文章:

c++ - Arduino 打印在大量打印时失败

c# - 适当的 c# 集合,用于通过多个键进行快速搜索

algorithm - 这种重复可以有多少个子问题,同时仍然比初始重复更快?

java - 验证下一个字符是否与第一个字符相同

node.js - 如何调用路由模块(node.js)中的内部函数?

Java优先级队列

c++ - 无法在 Visual Studio 2012 中打开头文件

c++ - 如果存在可以匹配另一个重载函数的函数模板,将调用哪个函数?

java - 在 Java 中扩展类功能的最佳方法?

javascript - 消除重复代码的最佳方法是什么