Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

터널을 통과한 볼륨의 양을 찾는 C 프로그램

<시간/>

높이가 41이고 너비가 매우 큰 터널이 있다고 가정합니다. 길이, 너비 및 높이가 있는 상자 목록도 있습니다. 상자의 높이가 터널 높이보다 정확히 작으면 상자가 터널을 통과할 수 있습니다. 터널을 통과하는 부피의 양을 찾아야 합니다. 볼륨은 길이 * 너비 * 높이입니다. 따라서 N개의 행과 3개의 열이 있는 2D 배열인 숫자 N이 있습니다.

따라서 입력이 N =4 boxs =[[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.length * box.width * box.height

  • lower() 함수를 정의하면 상자가 필요합니다.

  • box.height <41이면 true를 반환하고 그렇지 않으면 false

  • 기본 방법에서 다음을 수행하십시오.,

  • initialize i :=0의 경우, i

    • lower(boxes[i])가 참이면:

      • 디스플레이 볼륨(박스[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\n", 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