这是通过C语言实现的一个简单问题,我们先来看看题目。
任务描述
编写函数void yuantai(double h),求解圆台的表面积s和体积v,h为圆台的高。 已知:圆台,如下图,上半径r1=OP=32.5,下半径O1P1=r2=40.6,圆台的高OO1=h,可变。其中,圆台的表面积s和体积v的计算公式如下:
相关知识
圆台:是指用一个平行于圆锥底面的平面去截圆锥后,底面与截面之间的部分。圆台同圆柱和圆锥一样也有轴、底面、侧面和母线,并且用圆台台轴的字母表示圆台。(下面是例图)
编程要求
1.编写函数void yuantai(double h),根据圆台的公式求解圆台的表面积s和体积v。 2.已知上半径r1=32.5,下半径r2=40.6,圆台的高h可变,做函数的形参,h值由主调函数完成输入。
测试说明
平台会对你编写的代码进行测试,若是与预期输出相同,则算通关。
样例输入: 20.5 样例输出: s=13558.39 v=86385.23
样例输入: 30.5 样例输出: s=15743.45 v=128524.37
看到题目后因为想到H的平方首先想到构造形式参数用来计算S和V,代码如下:
void yuantai(double h)
{
double L,s,v;
L=sqrt(h*h+(r1-r2)*(r1-r2));
s=PI*(r1*r1+r2*r2)+PI*(r1+r2)*L;
v=PI*h*(r1*r1+r2*r2+r1*r2)/3;
printf("s=%.2f\nv=%.2f\n",s,v);
}
随后构造实参:
void main( )
{
float h;
scanf("%lf",&h);
yuantai(h);
}
最后添上头文件PI,R1,R2,就构成了整个的代码:
#include <stdio.h> // 标准输入输出库函数
#include <math.h> // 数学库函数
#define PI 3.1415
#define r1 32.5
#define r2 40.6
void yuantai(double h)
{
double L,s,v;
L=sqrt(h*h+(r1-r2)*(r1-r2));
s=PI*(r1*r1+r2*r2)+PI*(r1+r2)*L;
v=PI*h*(r1*r1+r2*r2+r1*r2)/3;
printf("s=%.2f\nv=%.2f\n",s,v);
}
void main( )
{
double h;
scanf("%lf",&h);
yuantai(h);
}