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
广告