C语言程序:计算通过隧道的体积


假设有一个隧道,高度为41,宽度很大。我们还有一系列箱子,包含长度、宽度和高度。如果箱子的高度严格小于隧道高度,则箱子可以穿过隧道。我们需要找到可以通过隧道的箱子的总体积。体积计算公式为:长度 * 宽度 * 高度。我们有一个数字N,以及一个N行三列的二维数组。

例如,如果输入为N = 4,boxes = [[9,5,20],[3,7,15],[8,15,41],[6,3,42]],则输出为900和315。我们可以通过前两个箱子,它们的体积分别为9 * 5 * 20 = 900和3 * 7 * 15 = 315。其他箱子的高度不符合要求。

为了解决这个问题,我们将遵循以下步骤:

  • 定义Box数据类型,包含长度、宽度和高度

  • 定义一个函数volume(),它将接收一个box作为参数,

  • 返回box.length * box.width * box.height

  • 定义一个函数lower(),它将接收一个box作为参数,

  • 如果box.height < 41则返回true,否则返回false

  • 在主方法中执行以下操作:

  • 初始化i := 0,当i < N时,更新(i递增1),执行以下操作:

    • 如果lower(boxes[i])为true,则

      • 显示volume(boxes[i])

示例

让我们看下面的实现来更好地理解:

Open Compiler
#include <stdio.h> #define N 4 struct Box{ int length, width, height; }; int volume(struct Box box){ return box.length*box.width*box.height; } int lower(struct Box box){ return box.height < 41; } int solve(struct Box boxes[]){ for (int i = 0; i < N; i++) if (lower(boxes[i])) printf("%d", volume(boxes[i])); } int main(){ struct Box boxes[N] = {{9,5,20},{3,7,15},{8,15,41},{6,3,42}}; solve(boxes); }

输入

4, {{9,5,20},{3,7,15},{8,15,41},{6,3,42}}

Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.

输出

900
315

更新于:2021年10月8日

305 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告