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

如何在C++中正确实现ax²+bx+c二次多项式计算,解决输出不符问题

代码问题分析与修正方案

存在的问题

  • 公式逻辑完全不符:目标是计算二次多项式a*x² + b*x + c,你的代码错误将a*x与b*x求和后再乘2的平方,和要求的计算逻辑完全不匹配,且错误调用pow(2,2)计算2的平方,而非x的平方。
  • 语法缺失:C++中表达式和函数调用之间需要显式添加乘号*,你漏写了(a * x + b * x)和pow之间的乘号,属于语法错误。
  • 运算顺序错误:额外添加的括号改变了运算优先级,和目标公式的运算顺序完全不一致。

手动验证正确计算逻辑

给定赋值a=2, b=2, c=4, x=2,代入公式计算:

计算过程:2*(2²) + 2*2 + 4 = 2*4 +4 +4 = 16,和示例输出一致。

修正后的代码

两种实现方式可选:

方式1:使用pow函数实现(符合题目要求用数学库的要求)

#include<iostream>
#include <cmath>

int main(void) {
    
    int a = 2;
    int b = 2;
    int c = 4;
    int x = 2;

    double result;
    // 按公式写运算逻辑:a乘以x的平方,加b乘以x,加c
    result = a * pow(x, 2) + b * x + c;

    std::cout << result;

    return 0;
}

方式2:直接用乘法计算x的平方(更高效,无浮点数精度问题)

直接将result赋值行替换为以下代码即可:

result = a * x * x + b * x + c;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 19:12:01