C语言 π的表示

我看到网上有人说在#include<math.h>里面已经定义了π 就是用pi或者pai表示
但是我用了之后计算结果是错误的 觉得应该不是pi表示 问一下是我编写方程错了还是什么的?
方程如下:
#include<stdio.h>
#include<math.h>
void main()
{
float r,h,c,s,v1,v2,v3,pai;
scanf("%f%f",&r,&h);
pai=3.1415926;(这句话如果我不加结果就是各种负的)
c=2*pai*r;
s=(pai*r*r)/2;
v1=4*pai*r*r;
v2=4*pai*r*r*r/3;
v3=pai*r*r*h;
printf("圆周长为%.2f\n",c);
printf("圆面积为%.2f\n",s);
printf("圆球的表面积为%.2f\n",v1);
printf("圆球体积为%.2f\n",v2);
printf("圆柱体积为%.2f\n",v3);
}

标准的C语言中没有π这个符号及常量,一般在开发过程中是通过开发人员自己定义这个常量的,最常见的方式是使用宏定义:

#define PI 3.141592

也可以直接普通变量定义,如:

double pi = 3.141592;



扩展资料:

数学函数

所在函数库为math.h、stdio.h、string.h、float.h

int abs(int i) 返回整型参数i的绝对值

double cabs(struct complex znum) 返回复数znum的绝对值

double fabs(double x) 返回双精度参数x的绝对值

long labs(long n) 返回长整型参数n的绝对值

double exp(double x) 返回指数函数ex的值

参考资料来源:百度百科-C语言函数

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-11-26

可以负责任的告诉你,C99标准里没提这事,但大部分实现里(VS和GCC)有这个宏定义形式为

#define M_PI 3.14159265358979323846 /*双精度*/
所以你可以再用到π  的地方写M_PI(记得包含头文件math.h),或者自己定义宏实现,如
#define PI 3.14159265358979323846

本回答被网友采纳
第2个回答  2014-03-10
头文件math.h中宏定义的是M_PI
#define M_PI 3.14159265358979323846
也就是说你要用M_PI 或者自己重新定义
#define pi 3.1415926
第3个回答  2014-03-10
pai=3.1415926;

超过float的存储范围,改成pai=3.141592;
或者定义为double型
第4个回答  2014-03-10
宏定义一下:
#define PI 3.1415926
相似回答