测试点:
主要思路:本题主要考察的是对continue,break的熟练运用,如果你用switch类型的也可以。其中最容易让人错的细节就是对π的定义一定要精确到3.1415926535,不然测试点的数据一大起来就会错,我一开始就卡在这里。
代码:
#include<stdio.h>
#define p 3.14159265358 //对于π的定义一定要精确到3.1415926535
int main()
{
int num;
double r,h,v;
do
{ printf("1-Ball\n2-Cylinder\n3-Cone\nother-Exit\nPlease enter your command:\n");
scanf("%d",&num);//输入数字
if(!(num==1||num==2||num==3))//判断数字是否为1,2,3
break;
if(num==1) //球体
{
printf("Please enter the radius:\n");
scanf("%lf",&r);
v=4.0/3*p*(r*r*r);
printf("%.2lf\n",v);
continue;
}
if(num==2) //圆柱
{
printf("Please enter the radius and the height:\n");
scanf("%lf %lf",&r,&h);
v=p*(r*r)*h;
printf("%.2lf\n",v);
continue;
}
if(num==3) //圆锥
{
printf("Please enter the radius and the height:\n");
scanf("%lf %lf",&r,&h);
v=1.0/3*p*(r*r)*h;
printf("%.2lf\n",v);
continue;
}
}while(1);
return 0;
}