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 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.