做一个算面积的程序(禁止白嫖)

这是一个使用C语言编写的程序,用于计算不同几何图形的面积,包括三角形、长方体、圆形和梯形。程序通过用户输入选择图形类型,并验证输入的有效性,然后根据选择的图形调用相应的面积计算公式。程序还包括了用户交互,允许用户选择继续计算或者退出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本代码难点在于函数与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;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值