你能用c语言完成上面那道题吗
时间: 2024-01-31 21:02:23 浏览: 68
使用C语言实现
当然可以!以下是使用 C 语言完成上述题目的代码示例:
```c
#include <stdio.h>
// 定义基类 Shape
typedef struct {
int x;
int y;
} Shape;
// 定义派生类 Rectangle
typedef struct {
Shape shape; // 继承基类 Shape
int length;
int width;
} Rectangle;
// 定义派生类 Circle
typedef struct {
Shape shape; // 继承基类 Shape
int radius;
} Circle;
// 定义派生类 Square
typedef struct {
Rectangle rectangle; // 继承派生类 Rectangle
} Square;
// 计算矩形面积
int getRectangleArea(Rectangle rect) {
return rect.length * rect.width;
}
// 计算圆面积
float getCircleArea(Circle circle) {
return 3.14 * circle.radius * circle.radius;
}
// 计算正方形面积
int getSquareArea(Square square) {
return square.rectangle.length * square.rectangle.length;
}
int main() {
Rectangle rect;
Circle cir;
Square sqr;
// 输入矩形的长和宽
printf("请输入矩形的长和宽:");
scanf("%d%d", &rect.length, &rect.width);
printf("矩形的面积为:%d\n", getRectangleArea(rect));
// 输入圆的半径
printf("请输入圆的半径:");
scanf("%d", &cir.radius);
printf("圆的面积为:%f\n", getCircleArea(cir));
// 输入正方形的边长
printf("请输入正方形的边长:");
scanf("%d", &sqr.rectangle.length);
printf("正方形的面积为:%d\n", getSquareArea(sqr));
return 0;
}
```
这段代码定义了一个基类 `Shape`,然后派生出 `Rectangle`、`Circle` 和 `Square` 类。每个类都有自己的数据成员和计算面积的函数。在 `main` 函数中,通过用户输入来获取矩形、圆和正方形的参数,并计算相应的面积并输出。
如果您还有任何问题,请随时提问。
阅读全文