【题目链接】
ybt 1030:计算球的体积
OpenJudge NOI 1.3 12:计算球的体积
【题目考点】
1. 浮点型常量
如果直接写一个数字,就是一个整型常量,如:10。
如果要表示一个浮点型常量,数字中必须要有小数点,或者是科学计数法,如:10.0,1e2
没有后缀的浮点型常量为双精度浮点型(double型)
添加后缀f,该浮点型常量为单精度浮点型(float型),如10.0f
2. 计算表达式的运算顺序
注意:只要两个整型量用/连接起来,默认进行整除运算
对于相同优先级的运算,表达式从左到右依次计算。
因而即便后面由浮点型量,如果前面出现两个整数相除的情况,也会视为整除运算。
例:cout<<4 / 3 * 3.14;
会先计算4 / 3,这是一个整除运算,值为1,1再乘以3.14,输出3.14。
3. 将整除运算转变实数相除
- 将参与除法的两个量之一强制转换为浮点型
例:cout<<(double)1/2;//输出0.5
- 将参与除法的其中一个量设为浮点型变量,或写成浮点型常量
例:cout<<1.0/2;//输出0.5
【题解代码】
解法1:使用cin,cout进行输入输出
使用浮点型常量
#include <bits/stdc++.h>
using namespace std;
int main()
{
const double PI = 3.14;
double r;
cin>>r; cout<<fixed<<setprecision(2)<<4.0/3.0*PI*r*r*r;//写成4.0/3.0,是浮点型常量相除,保证进行实数相除运算
return 0;
}
解法2:使用scanf,printf进行输入输出
使用强制类型转换
#include <bits/stdc++.h>
using namespace std;
int main()
{
const double PI = 3.14;
double r;
scanf("%lf", &r);
printf("%.2f", (double)4/3*PI*r*r*r);//将4强转成double类型后参与除法运算,即可进行实数相除运算
return 0;
}