初学,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;
}
主要运用到结构体和枚举,但枚举的体现不是很明显