题解 | #KiKi设计类继承#
KiKi设计类继承
http://www.nowcoder.com/practice/699ba050e2704591ae3e62401a856b0e
#include <stdio.h>
typedef struct all{
float x;
float y;
float r;
float c;
float (*Circles_GetArea)(float r); //圆面积
float (*Squares_GetArea)(float c); //正方形面积
float (*Rectangles_GetArea)(float x,float y); //矩形面积
}shape,*linkshape;
float Circles(float r)
{
float area = r*r*3.14;
return area;
}
float Squares(float c)
{
float area = c*c;
return area;
}
float Rectangles(float x,float y)
{
float area = x*y;
return area;
}
int main()
{
shape Area;
scanf("%f%f",&Area.x,&Area.y);
scanf("%f",&Area.r);
scanf("%f",&Area.c);
Area.Circles_GetArea = Circles;
Area.Squares_GetArea = Squares;
Area.Rectangles_GetArea = Rectangles;
printf("%g\n%g\n%g\n",Area.Rectangles_GetArea(Area.x,Area.y),Area.Circles_GetArea(Area.r),Area.Squares_GetArea(Area.c));
return 0;
}
typedef struct all{
float x;
float y;
float r;
float c;
float (*Circles_GetArea)(float r); //圆面积
float (*Squares_GetArea)(float c); //正方形面积
float (*Rectangles_GetArea)(float x,float y); //矩形面积
}shape,*linkshape;
float Circles(float r)
{
float area = r*r*3.14;
return area;
}
float Squares(float c)
{
float area = c*c;
return area;
}
float Rectangles(float x,float y)
{
float area = x*y;
return area;
}
int main()
{
shape Area;
scanf("%f%f",&Area.x,&Area.y);
scanf("%f",&Area.r);
scanf("%f",&Area.c);
Area.Circles_GetArea = Circles;
Area.Squares_GetArea = Squares;
Area.Rectangles_GetArea = Rectangles;
printf("%g\n%g\n%g\n",Area.Rectangles_GetArea(Area.x,Area.y),Area.Circles_GetArea(Area.r),Area.Squares_GetArea(Area.c));
return 0;
}
