我已知矩形的周长和面积,求长和宽,算出来的结果的长永远为0,这是为什么?用C++写的代码
4条回答 默认 最新
关注 引自免费微信小程序:皆我百晓生
在您提供的代码中,存在一个运算符优先级的问题,这导致了计算宽度时的公式有误。当表达式
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;
,确保首先计算平方根,然后再进行乘法和减法操作。这样,程序就能正确地根据给定的周长和面积计算出矩形的长和宽了。解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥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