本代码难点在于函数与C的表达式转换
比如三角形面积可以用海伦公式
在C中是
int main()
{
.
.
.
sqrt(p*(p-a)*(p-b)*(p-c));
.
.
.
}
a+b>c是
int main()
{
.
.
.
if(a+b>c)
{
if(c+b>a)
{
if(a+c>b)
{
goto 3ok;
}
}
}
3ok: ;
.
.
.
}
不多逼逼,还有很多种面积,上代码
#include <stdio.h>
#include <math.h>
int main()
{
int s,d,m,n,l,o,v;
float p,x,r,g,h,t,y,a,c,b;
f: ;
printf("你想要算什么的面积");
printf("\n(1确定 0:下一个)");
printf("\n长方形");
scanf("%d",&s);
switch(s)
{
case 1:goto go1;
}
printf("三角形");
scanf("%d",&d);
switch(d)
{
case 1:goto go2;
}
printf("长方体");
scanf("%d",&l);
switch(l)
{
case 1:goto go3;
}
printf("圆形");
scanf("%d",&o);
switch(o)
{
case 1:goto go4;
}
printf("梯形");
scanf("%d",&v);
switch(v)
{
case 1:goto go5;
case 0:goto f;
}
go1: ;
switch(s)
{
case 0:goto f;
case 1:
{
go1yes: ;
printf("请输入长: ");
scanf("%f",&a);
printf("请输入宽: ");
scanf("%f",&b);
n=a*b;
printf("他的面积是 :%d",n);
printf("\n还要继续计算吗");
printf("\n0:退出 1:继续 2:计算别的");
scanf("%d",&m);
switch(m)
{
case 0:goto end;
case 1:goto go1yes;
case 2:goto f;
}
}
}
go2: ;
switch(d)
{
case 0:goto f;
case 1:
{
go2yes: ;
printf("请输入a边: ");
scanf("%f",&a);
printf("请输入b边: ");
scanf("%f",&b);
printf("请输入c边: ");
scanf("%f",&c);
if(a+b<=c)
printf("\n没有这个三角形");
if(c+b<=a)
printf("\n没有这个三角形");
if(a+c<=b)
printf("\n没有这个三角形");
p=(a+b+c)/2;
x=sqrt(p*(p-a)*(p-b)*(p-c));
if(a+b>c)
{
if(b+c>a)
{
if(a+c>b)
{
goto 3go;
}
}
}
3go: ;
printf("他的面积是:%f",x);
printf("\n0:退出 1:继续 2:计算别的");
scanf("%d",&m);
switch(m)
{
case 0:goto end;
case 1:goto go2yes;
case 2:goto f;
}
}
}
go3: ;
switch(l)
{
case 1:
{
go3yes: ;
printf("请输入长: ");
scanf("%f",&a);
printf("请输入宽: ");
scanf("%f",&b);
printf("请输入高: ");
scanf("%f",&c);
x=a*b*c;
printf("他的面积是:%f ",x);
printf("\n0:退出 1:继续 2:计算别的");
scanf("%d",&m);
switch(m)
{
case 0:goto end;
case 1:goto go3yes;
case 2:goto f;
}
}
}
go4: ;
switch(o)
{
case 1:
{
go4yes: ;
printf("请输入直径: ");
scanf("%f",&g);
r=g/2;
x=(3.1415*r)*r;
printf("他的面积是:%f",x);
printf("\n0:退出 1:继续 2:计算别的");
scanf("%d",&m);
switch(m)
{
case 0:goto end;
case 1:goto go4yes;
case 2:goto f;
}
}
}
go5: ;
switch(v)
{
case 0:goto f;
case 1:
{
go5yes: ;
printf("请输入上底高度: ");
scanf("%f",&h);
printf("请输入下底高度: ");
scanf("%f",&t);
printf("请输入高度: ");
scanf("%f",&y);
x=((h+t)*y)/2;
printf("他的面积是: %f",x);
printf("\n0:退出 1:继续 2:计算别的");
scanf("%d",&m);
switch(m)
{
case 0:goto end;
case 1:goto go5yes;
case 2:goto f;
}
}
}
end: ;
return 0;
}