#define PI 3.14 定义小数时,我直接输出PI时,并不是输出3.14 而是很奇怪的长整数,为什么?

如题所述

因为你输出用的是%d,3.14是个浮点数,要用%f实现,比如,如下:
#include <stdio.h>
#define PI 3.14
int main(int argc, char *argv[])
{
printf("PI=%.2f\n",PI);
return 0;
}
温馨提示:内容为网友见解,仅供参考
无其他回答

...3.14 定义小数时,我直接输出PI时,并不是输出3.14 而是很奇怪的长整数...
因为你输出用的是%d,3.14是个浮点数,要用%f实现,比如,如下:include <stdio.h> define PI 3.14 int main(int argc, char *argv[]){ printf("PI=%.2f\\n",PI);return 0;}

#include<stdio.h> #define PI 3.14 int main() {float s,v,r,h...
3、球体积公式是 v=4\/3*PI*r*r*r,定义的变量 h 没有使用。4、类似3.14这样的浮点常量,默认类型是double。如果想统一类型为float,严格来讲应该写成3.14f,不过问题不大。整理后代码如下:include<stdio.h>#define PI 3.14int main(){ float s, v, r, h; scanf("%f%f", &r, &h...

对宏的替换不是很理解 #define. PI. 3.14 #define. S(r)
因为宏定义在预编译时被简单的替换了,为什么说简单,因为它只把字符原样的替换,他不会在意语言啊,运行优先级之类的,所以:S(a+b)=PI*a+b*a+b 如果你要达到PI*(a+b)*(a+b),则需要这么写#define. S(r) PI*(r)*(r)...

在宏定义#define PI 3.1415926中,用宏名PI代替了一个()。
C语言中有明确规定,宏定义是利用#define命令,用一个指定的标识代替一个字符串。对应到题目上就是#define 标识符 字符串,所以PI是标识符,3.1415926是字符串。所以这题选B 关于C选项,如果3.1415926不在宏函数定义中,那么它就是一个常量,只是因为它在#define命令中,所以它是一个字符串。A选项...

#define PI 3.1415926 main() { float r=2,c; c=2*PI*r; printf("%f...
define PI 3.1415926 宏定义,就是PI表示3.14...float 代表的是一种数字类型,,f是控制后面的C的输出格式,定义了C是float类型,就要 用%f输出。。其他输出格式你可以去看一些资料

...c语言大神求指教 #include<stdio.h> #define PI 3.14 int_百度...
由于你的输入输出格式控制是%lf,因此定义变量用double比较好,scanf对输入模式有严格的要求,如果输入的数据与参数不符合,那么就直接返回,后面的参数没有办法接收数据,你在scanf中r=%lf,h=%lf这样控制格式,那么在输入数据时,需要r=1.5,h=2.5这样的格式输入,才能让变量r和h接收到你输入的参数...

写出一个c程序:已知一个圆半径r=5,pi=3.14,求面积s的值并输出
define PI 3.14 int main(void) { double r=5; double s; s=r*r*PI printf("半径为%f面积为%f",r,s); system("pause"); return(0); }

编程从键盘输入圆的半径r,计算并输出圆的周长和面积.{用C语言编写}谢...
方法:include <stdio.h> define PI 3.14 int main(){ float r,c,area;printf("请输入圆的半径:");scanf("%f",&r);c=2 * PI * r;area=PI * r * r;printf("该圆的周长是%.2f,面积是%.2f\\a",c,area);}

...到小数点几位,不是说7位吗,那程序中#define PI ((float)3.141592654f...
float类型是可以精确到16位小数的,只是默认情况下,只输出6位小数.可以在输出的时候, 使用这种格式: %.16f 输出16位小数(当然也可以写比16大的数,只是输出时16位以后的都是0而已)

printf函数输出单精度和双精度都是保留两位小数,为何结果不同???
这不是printf的问题。在VC++6.0下,无论是float带是double都得结果21.20。在C中,float都自动提升到double来计算的,只是最后输出时精度不同。

相似回答