2067:【例2.5】圆

文章介绍了在C++中定义π的四种方式:直接赋值、通过acos(-1)、4*atan(1)以及使用库中的M_PI常量,并强调了double类型的有效数字限制。示例代码展示了如何在程序中应用这些定义。
摘要由CSDN通过智能技术生成

题目链接:点击这里

π的定义方法:

可以用反余弦函数acos或反正切函数atan求 π \pi π,也可以自己写出 π \pi π小数点后15位。写更多位没有用,因为double类型最多表示小数点后16位有效数字。
#define PI acos(-1)
#define PI 4*atan(1)
#define PI 3.14159(注意:double型是只有16位有效,所以超出16位的无效)
c++里面有已经定义好的常量M_PI,调用前必须在引入前定义宏#define _USE_MATH_DEFINES
要是图简便,直接double PI=3.141592653589793应该也是没问题的
下面是定义的代码

#define _USE_MATH_DEFINES
#include<bits/stdc++.h>
using namespace std;
int main()
{
    const double PI1 = 3.1415926535897932;
    const double PI2 = acos(-1);
    const double PI3 = 4*atan(1);
    const double PI4 = M_PI;//<cmath>中的常量,必须在第一行加上#define _USE_MATH_DEFINES才可以使用  
    printf("PI:\t\t%.16f\nacos(-1):\t%.16f\n4*atan(1):\t%.16f\nM_PI:\t\t%.16f", PI1, PI2, PI3, PI4); 
    //输出的最后一位是1,是错误的,只有小数点后15位是正确的。因为double类型最多只能表示16位有效数字,包括个位和小数点后15位。
	return 0;
}

下面上题解代码:

#include <cstdio>
using namespace std;
const double  PI=3.14159;
int main()
{
	double r,d,c,s;
	scanf("%lf",&r);
	d=r*2;
	c=2*PI*r;
	s=PI*r*r;
	printf("%4lf %4lf %4lf",d,c,s);
	
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值