You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C语言计算Ferrari FF车速及Deviation of Speed的代码错误求解

代码问题排查

  • 错误1:偏差值赋值逻辑错误。bs = +2&&-2、bt = +0.06&&-0.06中的&&是C语言逻辑与运算符,表达式最终结果为布尔真(值为1),完全不符合±2、±0.06的偏差定义。计算相对偏差时只需取偏差的绝对值,所以应直接赋值为bs = 2、bt = 0.06。
  • 错误2:单位转换存在整数除法截断问题。18/5是两个整数运算,结果会被截断为3,而非预期的3.6,需改为18.0 / 5.0保证浮点运算。
  • 错误3:存在无效的未初始化变量调用。x = (bv)/v ;这一行执行时bv还未赋值,属于未定义行为,且后续x会被重新赋值,该行可直接删除。
  • 错误4:单位转换重复执行。最初计算的v已经转换为km/h单位,后续计算出的bv本身就是km/h量级的偏差,不需要再次执行* 18/5的转换操作。

修正后代码

#include <stdio.h>
#include <math.h>

int main()
{
    float v = 42/0.56, t = 0.56,
    bv, // 速度偏差
    bs = 2, // 距离偏差绝对值
    s = 42, // 距离
    bt = 0.06,// 时间偏差绝对值
    x,y,z;

    v = v*(18.0/5.0); // 单位从m/s转换为km/hr
    printf("Speed of Ferrari FF = %.3f km/hr",v);

    y = (bs)/s ;
    z = (bt)/t ;

    x = sqrt( y*y + z*z ) ;
    bv = v * x ;
    printf("\nDeviation of Speed = %.3f km/hr",bv);

    return 0;
}

内容的提问来源于stack exchange,提问作者WWoPPoWW

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 19:27:03