c语音构造函数求圆台的表面积和体积
时间: 2024-12-20 14:22:36 浏览: 14
C语言中,我们可以创建一个结构体表示圆台,并为其添加构造函数来计算表面积和体积。首先,我们定义一个结构体`CylinderTaper`,包含上底半径、下底半径和高:
```c
#include <stdio.h>
#include <math.h>
// 定义圆台结构体
typedef struct {
double top_radius;
double bottom_radius;
double height;
} CylinderTaper;
// 构造函数,用于初始化并计算表面积和体积
CylinderTaper* create_taper(double top_r, double bot_r, double h) {
CylinderTaper *taper = (CylinderTaper*) malloc(sizeof(CylinderTaper));
if (taper != NULL) {
taper->top_radius = top_r;
taper->bottom_radius = bot_r;
taper->height = h;
// 计算表面积
double lateral_area = M_PI * (taper->top_radius + taper->bottom_radius) * taper->height;
double base_area_top = M_PI * pow(taper->top_radius, 2);
double base_area_bot = M_PI * pow(taper->bottom_radius, 2);
taper->surface_area = lateral_area + base_area_top + base_area_bot;
// 计算体积
double volume = (1.0 / 3.0) * M_PI * (pow(taper->top_radius, 2) - pow(taper->bottom_radius, 2)) * taper->height;
// 设置体积值
taper->volume = volume;
} else {
printf("Memory allocation failed.\n");
return NULL;
}
return taper;
}
void destroy_taper(CylinderTaper* taper) {
free(taper);
}
int main() {
CylinderTaper *taper = create_taper(5.0, 3.0, 8.0); // 创建圆台实例
if (taper != NULL) {
printf("圆台的表面积: %.2f\n", taper->surface_area);
printf("圆台的体积: %.2f\n", taper->volume);
destroy_taper(taper); // 释放内存
}
return 0;
}
```
在这个示例中,构造函数`create_taper`接收圆台的尺寸作为参数,然后计算并存储表面积和体积。`destroy_taper`函数用于清理内存。在`main`函数中,我们创建了一个圆台实例并展示了它的表面积和体积。
阅读全文