本题要求实现一个常用圆形体体积的计算器。计算公式如下:
球体体积 V=
3
4
πr
3
,其中r是球体半径。
圆柱体体积 V=πr
2
h,其中r是底圆半径,h是高。
圆锥体体积 V=
3
1
πr
2
h,其中r是底圆半径,h是高。
输入格式:
在每次计算之前,要求输出如下界面:
1-Ball
2-Cylinder
3-Cone
other-Exit
Please enter your command:
然后从标准输入读进一个整数指令。
输出格式:
如果读入的指令是1或2或3,则执行相应的体积计算;如果是其他整数,则程序结束运行。
当输入为1时,在计算球体体积之前,打印Please enter the radius:,然后读入球体半径,完成计算;
当输入为2时,在计算圆柱体体积之前,打印Please enter the radius and the height:,然后读入底圆半径和高,完成计算;
当输入为3时,在计算圆锥体体积之前,打印Please enter the radius and the height:,然后读入底圆半径和高,完成计算。
计算结果在一行内输出,保留小数点后两位。
输入样例:
1
2
3
2.4 3
0
结尾无空行
输出样例:
1-Ball
2-Cylinder
3-Cone
other-Exit
Please enter your command:
Please enter the radius:
33.51
1-Ball
2-Cylinder
3-Cone
other-Exit
Please enter your command:
Please enter the radius and the height:
18.10
1-Ball
2-Cylinder
3-Cone
other-Exit
Please enter your command:
结尾无空行
#include<iostream>
#include<math.h>
#define PI 3.1415926535
using namespace std;
int main()
{
int n;
double radius,height;
while(1)
{
cout<<"1-Ball"<<endl<<"2-Cylinder"<<endl<<"3-Cone"<<endl<<"other-Exit"<<endl<<"Please enter your command:"<<endl;
cin>>n;
if(n==1)
{
cout<<"Please enter the radius:"<<endl;
cin>>radius;
printf("%.2lf\n",4*PI*pow(radius,3)/3);
}
else if(n==2)
{
cout<<"Please enter the radius and the height:"<<endl;
cin>>radius>>height;
printf("%.2lf\n",PI*radius*radius*height);
}
else if(n==3)
{
cout<<"Please enter the radius and the height:"<<endl;
cin>>radius>>height;
printf("%.2lf\n",PI*radius*radius*height/3);
}
else
{return 0;}
}
}
话说,这个题最初的输入把我看蒙了,1,2,3,我以为是运算三次,后来才明白选了1运算后,2是输入的半径,然后又选择了三运算。也就是在一次运算完可以继续重新开始,所以采用一种while(1)的用法。
另一个是输出指令后记得换行,否则就是1分和满分的差距。。。