C语言水题:计算圆台水位

本题要求计算圆台形水缸的水位高度。给定水缸的底部半径、顶部半径、高度和水体积,你需要编写C语言程序输出水位高度。

输入格式:

首先输入一个T ≤ 20,表示测试数量。每行输入四个整数,分别为r,R,H,v,代表水缸的底部半径,顶部半径,高度,以及水的体积。1 ≤ r, R, H ≤ 100; 0 ≤ V ≤ 1000,000,000. r ≤ R. 不会有空的测试行。

输出格式:

对于每一行测试数据,输出水的高度(保留六位小数)。

示例:

输入样例:

1
100 100 100 3141562

输出样例:

99.999024

C语言代码:

#include <stdio.h>

double calculateHeight(int r, int R, int H, int v) {
    double height;
    double volume;
    
    volume = v / (3.1415926 * (R * R + R * r + r * r) / 3); // 计算体积
    if (volume >= H) {
        height = H; // 如果体积大于等于整个圆台的体积,则水满,高度为H
    } else {
        height = volume / (3.1415926 * r * r); // 否则,计算水的高度
    }
    
    return height;
}

int main() {
    int T;
    scanf("%d", &T);
    
    for (int i = 0; i < T; i++) {
        int r, R, H, v;
        scanf("%d %d %d %d", &r, &R, &H, &v);
        
        double height = calculateHeight(r, R, H, v);
        printf("%.6f\n", height);
    }
    
    return 0;
}

代码解释:

  • 首先,定义一个函数calculateHeight,用于计算水的高度。函数的参数为四个整数rRHv,分别表示水缸的底部半径、顶部半径、高和水的体积。
  • 在函数中,定义两个变量heightvolume
  • 根据圆台的体积公式,计算整个圆台的体积,并将结果存储在volume中。
  • 如果volume大于等于整个圆台的体积,则表示水满,将水的高度设置为H。
  • 否则,根据圆柱体的体积公式,计算水的高度,并将结果存储在height中。
  • 返回水的高度。
  • main函数中,首先读取输入的测试数量T。
  • 使用一个外层循环,重复处理T组测试数据。
  • 在每一组测试数据中,使用scanf函数读取水缸的底部半径、顶部半径、高和水的体积。
  • 调用calculateHeight函数计算水的高度,并输出结果。
  • 注意:在示例代码中,我们假设输入的数据满足题目所给的约束条件。您可以根据实际情况进行调整。

原文地址: http://www.cveoy.top/t/topic/dnVh 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录