c语言构造一个圆类circle,属性为半径radius,圆周长和面积,要求定义以半径为参数、缺省值为0的构造函数,周长面积的计算在构造函数中实 现
时间: 2024-11-10 21:25:01 浏览: 39
在C语言中,由于其静态类型的特性,我们无法直接像面向对象语言那样创建类或实例。但是,我们可以模拟类似的概念,通过结构体和函数来实现圆的基本功能。下面是一个简单的例子:
```c
#include <stdio.h>
#include <math.h>
// 定义Circle结构体,包含半径、周长和面积
typedef struct {
float radius;
float circumference; // 初始化为0
float area; // 初始化为0
} Circle;
// 构造函数,初始化圆的周长和面积
void init_circle(Circle* circle, float radius) {
if (radius > 0) {
circle->radius = radius;
circle->circumference = 2 * M_PI * radius; // 计算并存储周长
circle->area = M_PI * pow(radius, 2); // 计算并存储面积
} else {
printf("Invalid radius. Setting it to default value of 0.\n");
circle->radius = 0;
circle->circumference = 0;
circle->area = 0;
}
}
int main() {
Circle my_circle;
float user_radius;
printf("Enter the radius for your circle (default is 0): ");
scanf("%f", &user_radius);
// 调用构造函数
init_circle(&my_circle, user_radius);
printf("Circle with radius %.2f:\n", my_circle.radius);
printf("Circumference: %.2f\n", my_circle.circumference);
printf("Area: %.2f\n", my_circle.area);
return 0;
}
```
在这个示例中,我们定义了一个`Circle`结构体,并提供了一个名为`init_circle`的函数作为“构造函数”,用于初始化圆的相关属性。用户可以输入半径值,如果没有输入,则使用默认值0。主函数中创建了一个`Circle`实例并调用了该构造函数。
阅读全文