写一个程序,该程序首先提示用户选择几何图形,然后提示用户输入适当的图形参数,最后根据不同类型的图形分别输出其平面面积,C语言

这是一个C语言程序,用户可以选择三角形、长方形或圆形,并输入相应参数计算平面面积。程序使用结构体和枚举,能计算并输出所有输入图形的总面积和平均面积。

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

初学,C语言,望指正

主要为了记录一下自己的学习历程

#include<stdio.h>
#define PI 3.1415926
enum shape{traingle,rectangle,circular
};
struct traingle
{
    double base;
    double height;
    double square1;
};
struct rectangle
{
    double length;
    double width;
    double square2;
};
struct circular
{
    double radius;
    double square3;
};
int main()
{
    int i=1,j=0,a=0,b=0,u=0;
    struct traingle t[100];
    struct rectangle r[100];
    struct circular c[100];
    double square,square1,square2,square3,aver;
    enum shape x;
    while(i!=0)
    {
        printf("请输入几何图形:1-三角形,2-长方形,3-圆形,0-选择结束:");
        scanf("%d",&i);
        if(i==0){
            break;
        }
        switch(i) 
        {
            case 1:x=traingle;
            break;
            case 2:x=rectangle;
            break;
            case 3:x=circular;
            break; 
        }
        switch(x)
        {
            case traingle:
            printf("请输入三角形的底和高(用空格隔开)\n:");
            scanf("%lf %lf",&t[j].base,&t[j].height);
            t[j].square1=t[j].base*t[j].height/2;
            printf("三角形的面积为%lf\n",t[j].square1);
            j++;
            break;
            case rectangle:
            printf("请输入长方形的长和宽(用空格隔开):");
            scanf("%lf %lf",&r[a].length,&r[a].width);
            r[a].square2=r[a].length*r[a].width;
            printf("长方形的面积为%lf\n",r[a].square2);
            a++;
            break;
            case circular:
            printf("请输入圆形的半径:");
            scanf("%lf",&c[b].radius);
            c[b].square3=c[b].radius*c[b].radius*PI;
            printf("圆形的面积为%lf\n",c[b].square3);
            b++;
            break;
        }
    
    }
    for(u=0;u<j;u++)
    {
        square1+=t[u].square1;
    }
    printf("共有%d个三角形,总面积为%lf\n",j,square1);
    for(u=0;u<a;u++)
    {
        square2+=r[u].square2;
    }
    printf("共有%d个长方形,总面积为%lf\n",a,square2);
    for(u=0;u<b;u++)
    {
        square3+=c[u].square3;
    }
    printf("共有%d个圆形,总面积为%lf\n",b,square3);
    square=square1+square2+square3;
    aver=(square1+square2+square3)/(j+a+b);
    printf("共有%d个图形,总面积为%lf,平均面积为%lf",j+a+b,square,aver);
    return 0;
}
主要运用到结构体和枚举,但枚举的体现不是很明显

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值