【题目链接】
ybt 1014:与圆相关的计算
OpenJudge NOI 1.3 09:与圆相关的计算
【题目补充】
OpenJudge中有提示,本题中圆周率只能取3.14159,这一点在ybt中没有说明。
如果取3.1415926来计算,结果是错误的。
【题目考点】
1. 常量
- 普通常量
const 常量类型 常量名 = 常量的值;
例:定义常量PI:const double PI = 3.14159
- 符号常量
用预处理语句定义符号常量,其本质是字符替换
例:定义符号常量PI:#define PI 3.14159
- 确定在程序运行过程中不可能更改的量,应设为常量
- 习惯上常量名都是大写的
2. 输出浮点型数字a,保留x位小数
cout<<fixed<<setprecision(x)<<a;
printf("%.xf", a);
3. 求圆直径、周长、面积的数学公式
半径: r r r, 直径: 2 r 2r 2r, 周长: 2 π r 2\pi r 2πr,面积: π r 2 \pi r^2 πr2
【题解代码】
解法1:设置浮点型常量
使用cin, cout进行输入输出
#include <bits/stdc++.h>
using namespace std;
int main()
{
const double PI = 3.14159;//将圆周率设为常量
double r;
cin>>r;
cout<<fixed<<setprecision(4)<<2*r<<' '<<2*PI*r<<' '<<PI*r*r;
return 0;
}
解法2:设置符号常量
使用cin, cout进行输入输出
#include <bits/stdc++.h>
using namespace std;
#define PI 3.14159 //将圆周率设为符号常量
int main()
{
double r;
cin>>r;
cout<<fixed<<setprecision(4)<<2*r<<' '<<2*PI*r<<' '<<PI*r*r;
return 0;
}
解法3:使用scanf, printf进行输入输出
#include <bits/stdc++.h>
using namespace std;
int main()
{
const double PI = 3.14159;//将圆周率设为常量
double r;
scanf("%lf", &r);
printf("%.4f %.4f %.4f", 2*r, 2*PI*r, PI*r*r);
return 0;
}