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])

示例

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

#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}}

输出

900
315

更新于:2021年10月8日

305 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告