c++中math中PI怎么用?
double c=PI*6;这句话提示错误,未声明的标识符
而 double d=pow(3.456767,2);这句话就是对的为什么? 展开
从math.h的源文件中可以看到,需要首先在#include<math.h>前定义#define _MATH_DEFINES_DEFINED,才可以使用一些数学常量,并且可以看到pi的数学符号是M_PI。
因此,我们需要这样使用PI这个常数:
扩展资料:
从math.h的源文件还看到很多其他的数学常数,比如ln2,ln10,lge,lg2等等。这些都可以使用特定的数学符号来表示这些常量。
math.h中使用了条件编译指令# if defined...,在图一的第一行。
这里便是预处理指令,它是以#号开头的代码行。#号必须是该行除了任何空白字符外的第一个字符。#后是指令关键字,在关键字和#号之间允许存在任意个数的空白字符。整行语句构成了一条预处理指令,该指令将在编译器进行编译之前对源代码做某些转换。
下面是部分预处理指令:
#空指令,无任何效果
#include包含一个源代码文件
#define定义宏
#undef取消已定义的宏
#if如果给定条件为真,则编译下面代码
#ifdef如果宏已经定义,则编译下面代码
#ifndef如果宏没有定义,则编译下面代码
#elif如果前面的#if给定条件不为真,当前条件为真,则编译下面代码
#endif结束一个#if……#else条件编译块
#error停止编译并显示错误信息
#define M_PI 3.14159265358979323846
2、这是一个在库文件头文件math.h中的定义的宏,实际上就是圆周率π的一个近似值,约等于3.1415
下面是一个求三角函数sin(a)值的一个程序,这里就用到了M_PI这个宏。由于这里的a要求是弧度,所以对于输入的角的度数做了相应的转换。
#include <stdio.h>
#include <math.h>
int main()
{
int degree;
printf("Please input angle degree:\n");fflush(NULL);
scanf("%d",°ree);
printf("sin(%d)=%f\n",degree,sin(M_PI*degree/180));
return 0;
}
因为:头文件math.h中宏定义的是M_PI
扩展资料:
关于上述提到的M_PI
.M_PI 是一个宏定义,圆周率的定义
#define M_PI 3.14159265358979323846
此宏定义和编译器有关,TC中M_PI宏就定义在<math.h>里面。
但vc的<math.h>中没有了M_PI的宏定义。
常见宏定义:
#include<bits/stdc++.h>
#define _USE_MATH_DEFINES
using namespace std;
int main()
{
cout<<M_PI<<endl;
cout<<M_E<<endl;
return 0;
}
#if defined(_USE_MATH_DEFINES) && !defined(_MATH_DEFINES_DEFINED)
#define _MATH_DEFINES_DEFINED
#define M_E 2.71828182845904523536
#define M_LOG2E 1.44269504088896340736
#define M_LOG10E 0.434294481903251827651
#define M_LN2 0.693147180559945309417
#define M_LN10 2.30258509299404568402
#define M_PI 3.14159265358979323846
#define M_PI_2 1.57079632679489661923
#define M_PI_4 0.785398163397448309616
#define M_1_PI 0.318309886183790671538
#define M_2_PI 0.636619772367581343076
#define M_2_SQRTPI 1.12837916709551257390
#define M_SQRT2 1.41421356237309504880
#define M_SQRT1_2 0.707106781186547524401
#endif /* _USE_MATH_DEFINES */
2015-12-14 · 做真实的自己 用良心做教育
#define M_PI 3.14159265358979323846
C++由于语言本身过度复杂,这甚至使人类难于理解其语义。更为糟糕的是C++的编译系统受到C++的复杂性的影响,非常难于编写,即使能够使用的编译器也存在了大量的问题,这些问题大多难于被发现。
由于本身的复杂性,复杂的C++程序的正确性相当难于保证。也有人提出不支持多线程的原语等缺陷。不过有如此多的知名人士提出了如此多的缺陷,正说明C++被广泛使用和成功。
1、头文件math.h中宏定义的是M_PI
#define M_PI 3.14159265358979323846
2、这是一个在库文件头文件math.h中的定义的宏。实际上就是圆周率π的一个近似值,约等于3.1415.
下面是一个求三角函数sin(a)值的一个程序,这里就用到了M_PI这个宏。由于这里的a要求是弧度,所以对于输入的角的度数做了相应的转换。
#include <stdio.h>
#include <math.h>
int main()
{
int degree;
printf("Please input angle degree:\n");fflush(NULL);
scanf("%d",°ree);
printf("sin(%d)=%f\n",degree,sin(M_PI*degree/180));
return 0;
}
#define M_PI 3.14159265358979323846
VC的 math.h 里有 M_PI 等数学常量,只是要求在 #include <math.h> 前面定义 _USE_MATH_DEFINES 宏:
#include <tchar.h>
#define _USE_MATH_DEFINES
#include <math.h>
int _tmain()
{
return _tprinftf(_T("%lf\n"), M_PI);
}
[以上参考于网络]