C++编程:花园围篱方案判断及费用计算的注意要点
```cpp #include <iostream> using namespace std; // 计算所需木头和铁丝的长度 void calculateMaterials(double length, double width, double& woodNeeded, double& wireNeeded) { // 计算所需木头长度,因为对边相同,所以是2倍的长和宽 woodNeeded = 2 * (length + width); // 计算所需铁丝长度,同样是2倍的长和宽 wireNeeded = 2 * (length + width); } // 计算购买材料的费用 double calculateCost(double woodLack, double wireLack) { // 计算缺少木头的费用,每米木头5元 double woodCost = woodLack * 5; // 计算缺少铁丝的费用,每米铁丝3元 double wireCost = wireLack * 3; // 返回总费用 return woodCost + wireCost; } int main() { double length, width; double ownedWood, ownedWire; // 从用户输入获取花园的长和宽 cin >> length >> width; // 从用户输入获取拥有的木头和铁丝长度 cin >> ownedWood >> ownedWire; double woodNeeded, wireNeeded; // 调用函数计算所需木头和铁丝长度 calculateMaterials(length, width, woodNeeded, wireNeeded); // 计算缺少的木头和铁丝长度 double woodLack = (woodNeeded - ownedWood > 0) ? woodNeeded - ownedWood : 0; double wireLack = (wireNeeded - ownedWire > 0) ? wireNeeded - ownedWire : 0; if (woodLack > 0 || wireLack > 0) { // 如果缺少材料,计算最少花费 double cost = calculateCost(woodLack, wireLack); cout << 0 << " " << cost << endl; } else { // 如果材料足够,计算方案数 int solutions = 0; // 方案1:四边都是木头 if (ownedWood >= woodNeeded) { solutions++; } // 方案2:四边都是铁丝 if (ownedWire >= wireNeeded) { solutions++; } // 方案3:长边为木头,短边为铁丝 if (ownedWood >= 2 * length && ownedWire >= 2 * width) { solutions++; } // 方案4:长边为铁丝,短边为木头 if (ownedWire >= 2 * length && ownedWood >= 2 * width) { solutions++; } cout << solutions << endl; } return 0; } ``` 我在以往的开发过程中,碰到过以下几点需要格外小心处理的地方: 1. 在计算缺少材料的长度时,要确保不会出现负数,否则会影响后续费用的计算。 2. 在判断方案数时,要考虑全面,包括四边都是同一种材料以及对边不同材料的各种情况。 3. 输入数据的类型要与程序中使用的数据类型一致,避免因类型不匹配导致计算错误。 ######[AI写代码神器 | 717点数解答 | 2025-10-05 21:50:16]
- 工程师必知:软件系统用户文档编写九大要点揭秘(百度文心 | 350点数解答 | 2023-11-09 18:23:53)197
- Python 编程:轻松计算飞机行李收费(含代码详解)(字节豆包 | 250点数解答 | 2026-01-29 17:07:02)31
- 工程师必备:十大APP性能优化方案大揭秘(百度文心 | 300点数解答 | 2023-11-09 18:31:04)338
- 含不规则缺陷原材料的最优切割方案建模与损失率、利用率计算(DeepSeek | 2367点数解答 | 2025-05-10 23:47:30)266
- 去掉代码备注:计算 f(a) + f(b) + f(c) 的简洁代码实现(字节豆包 | 150点数解答 | 2026-03-14 20:04:24)13
- C++ 代码实现自定义运算 x@y = x² + y² - xy 及 x@(x+y) 计算(DeepSeek | 215点数解答 | 2025-12-13 15:08:14)80
- C++ 实现根据输入正整数奇偶性计算偶数和或约数和(字节豆包 | 838点数解答 | 2026-02-28 20:23:59)34
- Python 编程:开启无限可能的编程之旅!(阿里通义 | 19点数解答 | 2023-12-07 16:15:34)339
- C++实现单门课程成绩管理系统:教师学生双身份操作全解析(GPT | 6361点数解答 | 2024-05-24 02:01:02)551
- 边长为3、4、5的三角形面积求解:用海伦公式算出结果为6! (字节豆包 | 155点数解答 | 2024-10-15 16:41:01)400
- C++实现含权限保护的二级文件系统:从设计到代码全解析 (阿里通义 | 1602点数解答 | 2024-10-28 14:42:23)276
- C语言实现:通过指针传递二维数组查找3名同学5门课的最高分及位置(字节豆包 | 393点数解答 | 2024-12-13 23:14:35)377