?
我必须创建2个结构,即矩形和椭圆形,其中矩形结构包含其长度和宽度,而椭圆形结构包含其半短轴和半长轴的长度。然后,我必须创建一个具有上述两个结构作为其成员的联合Shape。然后,我必须创建一个公共函数'area',该函数计算并集的面积(根据传递给该函数的参数,是矩形还是椭圆形)。我目前使用菜单驱动的方法和切换用例(问题后面的代码)处理了上述问题。
我想创建一个将联合作为参数并根据联合中存储的结构计算面积的智能函数。
代码
typedef struct rect{
int l,b;
}r;
typedef struct oval{
int x,y;
}o;
union shape{
r r1;
o o1;
}sh;
void area(int a);
void main()
{
int ch;
int a;
printf(" 1.Area of rect\n 2.Area of oval\n 3.EXIT");
while(1){
printf("\nEnter your choice: ");
scanf("%d",&ch);
switch(ch)
{
case 1:a=0;
area(a);
break;
case 2:a=1;
area(a);
break;
default:printf("BYE\n");
return;
}
}
}
void area(int a)
{
if(a==0){
printf("Enter Length and Breadth: ");
scanf("%d %d",&sh.r1.l,&sh.r1.b);
int ar=sh.r1.l*sh.r1.b;
printf("%d",ar);
}
else if(a==1){
printf("Enter x and y of Oval: ");
scanf("%d %d",&sh.o1.x,&sh.o1.y);
float ar=sh.o1.x*sh.o1.y;
printf("%.2f",ar*3.14);
}
}
提前谢谢!