暮景桑榆127 2024-05-20 23:24 采纳率: 14.3%
浏览 2

C++计算矩形的长和宽

img


我已知矩形的周长和面积,求长和宽,算出来的结果的长永远为0,这是为什么?用C++写的代码

  • 写回答

4条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-05-20 23:24
    关注

    引自免费微信小程序:皆我百晓生

    在您提供的代码中,存在一个运算符优先级的问题,这导致了计算宽度时的公式有误。当表达式perimeter - 2 * sqrt(area) / 2被解析时,先执行了除法操作,然后才是乘法。解决这个问题的方法是通过添加括号来明确运算顺序。

    修改后的代码如下:

    #include <iostream>
    #include <cmath>
    using namespace std;
    
    int main() {
        double perimeter, area;
        cout << "请输入矩形的周长和面积:" << endl;
        cin >> perimeter >> area;
    
        // 添加括号以修正运算符优先级问题
        double width = (perimeter - (2 * sqrt(area))) / 4; 
        double length = (perimeter - 2 * width) / 2;
    
        cout << "矩形的长为:" << length << endl;
        cout << "矩形的宽为:" << width << endl;
    
        return 0;
    }
    

    在这段修改后的代码中,我将原本的 width = (perimeter - 2 * sqrt(area) / 2); 更改为 width = (perimeter - (2 * sqrt(area))) / 4;,确保首先计算平方根,然后再进行乘法和减法操作。这样,程序就能正确地根据给定的周长和面积计算出矩形的长和宽了。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 5月20日

悬赏问题

  • ¥20 c#使用NPOI向word表格中添加字段导致word有概率警告不可识别
  • ¥15 怎么使用hxe16进制编码器修改视频数据和图片一样!求教程!
  • ¥15 怎么用python模拟光的折射,反射,和全反射
  • ¥15 python打印机打印word和PDF文件出来的是乱码
  • ¥15 求达梦8数据库安装包
  • ¥15 YOLOv8模型网络结构更改后报错
  • ¥15 深度学习中梯度为None
  • ¥15 zynq烧写程序到flash后不运行
  • ¥15 裸板ESD问题的思考与实验
  • ¥15 electron+python