月与鱼与雨 2022-05-29 13:29 采纳率: 100%
浏览 38
已结题

c++输入得代码得不出结果


#include<iostream>
using namespace std;
 
int main()
{
    int x, y;
    for (x = 0; x <= 200; x++)    
    {
        for (y = 200; y >x; y--)
        {
            if (2.9*x + 1.7*y == 80.2)
            {
                cout << x << endl;
            }
        }
    }
    return 0;
}

如图,输出没有结果但是将 2.9,1.7,80.2改为29,17,802后却能输出得到结果13,求解答为什么会这样以及怎么解决

  • 写回答

2条回答 默认 最新

  • GoodCoder666 2022-05-29 13:39
    关注

    这可能是浮点数误差原因导致。建议使用29,17,802,全部int,数学上等价,没有误差

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 6月6日
  • 已采纳回答 5月29日
  • 创建了问题 5月29日

悬赏问题

  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
  • ¥15 关于#hadoop#的问题
  • ¥15 (标签-Python|关键词-socket)
  • ¥15 keil里为什么main.c定义的函数在it.c调用不了
  • ¥50 切换TabTip键盘的输入法
  • ¥15 可否在不同线程中调用封装数据库操作的类
  • ¥15 微带串馈天线阵列每个阵元宽度计算
  • ¥15 keil的map文件中Image component sizes各项意思