C 语言实现:计算两个矩形上下叠放的最大重合面积
以下是使用 C 语言解决此问题的示例代码: ```c #include <stdio.h> // 计算两个矩形的重合面积 int maxOverlapArea(int len1, int wid1, int len2, int wid2) { int area1 = len1 * wid1; int area2 = len2 * wid2; // 情况 1:矩形 2 完全包含在矩形 1 内 if (len2 <= len1 && wid2 <= wid1) { return area2; } // 情况 2:矩形 1 完全包含在矩形 2 内 else if (len1 <= len2 && wid1 <= wid2) { return area1; } // 情况 3:矩形部分重叠 else { int overlapLen = 0, overlapWid = 0; // 计算重叠的长度 if (len2 <= len1) { overlapLen = len2; } else if (len1 <= len2) { overlapLen = len1; } else { int start1 = len1 / 2 - wid2 / 2; int end1 = len1 / 2 + wid2 / 2; if (start1 <= 0 && end1 >= len1) { overlapLen = len1; } else if (start1 >= 0 && end1 <= len1) { overlapLen = wid2; } else if (start1 < 0) { overlapLen = end1; } else { overlapLen = len1 - start1; } } // 计算重叠的宽度 if (wid2 <= wid1) { overlapWid = wid2; } else if (wid1 <= wid2) { overlapWid = wid1; } else { int start2 = wid1 / 2 - len2 / 2; int end2 = wid1 / 2 + len2 / 2; if (start2 <= 0 && end2 >= wid1) { overlapWid = wid1; } else if (start2 >= 0 && end2 <= wid1) { overlapWid = len2; } else if (start2 < 0) { overlapWid = end2; } else { overlapWid = wid1 - start2; } } return overlapLen * overlapWid; } } int main() { int len1, wid1, len2, wid2; printf("请输入矩形 1 的长和宽:"); scanf("%d %d", &len1, &wid1); printf("请输入矩形 2 的长和宽:"); scanf("%d %d", &len2, &wid2); int overlapArea = maxOverlapArea(len1, wid1, len2, wid2); printf("两个矩形上下叠放后的最大重合面积为:%d\n", overlapArea); return 0; } ``` 这段代码首先考虑了两个矩形完全包含和部分重叠的情况,通过计算重叠部分的长度和宽度来得到重合面积。 ######[AI写代码神器 | 756点数解答 | 2024-10-31 14:57:36]
- C++ 实现:按顺序存储并输出战力 1 - 10 守卫数量(DeepSeek | 130点数解答 | 2026-01-17 14:11:22)72
- C++实现按战力顺序输出守卫数量(字节豆包 | 185点数解答 | 2026-02-25 22:33:20)43
- C++实现按战力顺序输出守卫数量(字节豆包 | 497点数解答 | 2026-03-20 20:01:06)21
- 小核桃存储守卫战力数量的Python程序实现(字节豆包 | 150点数解答 | 2026-04-03 19:47:58)24
- 使用C++实现存储守卫战力并按顺序输出的程序(字节豆包 | 224点数解答 | 2026-04-12 19:13:22)14
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)380
- 高考毕业晚会难题:从学生能力值求最大默契程度的Python解法(字节豆包 | 487点数解答 | 2026-01-24 13:10:18)58
- Java 简单工厂模式:打造可扩展的几何图形绘图工具类(阿里通义 | 570点数解答 | 2024-11-30 14:40:37)170
- Java 运用简单工厂模式构建多几何形状绘图工具类全解析 (字节豆包 | 584点数解答 | 2024-11-30 14:41:44)158
- Python 破解:计算 n*n 网格中只含 1 的最大矩形数字和! (字节豆包 | 534点数解答 | 2026-02-07 20:24:57)33
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)350
- C++ 代码实现自定义运算 x@y = x² + y² - xy 及 x@(x+y) 计算(DeepSeek | 215点数解答 | 2025-12-13 15:08:14)98