一个关于c语言的问题·~~~~~~~~~~
#include<stdio.h>main(){floatf,c;f=64.0;c=(5.0/9)*(f-32);printf("%f\n%f\n",f,c);}1.在这...
#include<stdio.h>
main()
{float f,c;
f=64.0;
c=(5.0/9)*(f-32);
printf("%f\n%f\n",f,c);
}
1. 在这个语句里 c=(5.0/9)*(f-32);可不可以改成 c=(5/9)*(f-32);?
原程序为什么要把5写成小数?用意是什么?
2.看见有些c程序例题直接定义一个变量 float a=2; 或者double a=2;
这样是对的吗?在定义一个实型变量之后,输入实型变量值时,可不可以用这种形式输入:double b=2,或float a=2;
还是一定要写成float a=2.0,double b=2.0; 呢?
3.还有我可不可以这样写 float a=3.14159L 把数值强制定义成double型 这样写对吗?
同时我这样写行不?------- double a=3.14159f 展开
main()
{float f,c;
f=64.0;
c=(5.0/9)*(f-32);
printf("%f\n%f\n",f,c);
}
1. 在这个语句里 c=(5.0/9)*(f-32);可不可以改成 c=(5/9)*(f-32);?
原程序为什么要把5写成小数?用意是什么?
2.看见有些c程序例题直接定义一个变量 float a=2; 或者double a=2;
这样是对的吗?在定义一个实型变量之后,输入实型变量值时,可不可以用这种形式输入:double b=2,或float a=2;
还是一定要写成float a=2.0,double b=2.0; 呢?
3.还有我可不可以这样写 float a=3.14159L 把数值强制定义成double型 这样写对吗?
同时我这样写行不?------- double a=3.14159f 展开
展开全部
1、不建议将5.0写成5,因为c是单精度浮点型,int型变量会向精度高的单精度float型变量转化,这样是为了保证数据的准确性可靠性,5.0是单精度浮点型,5是整型,不一样的,5.0/9是单精度结果0.555556,而5/9是整型结果为0。
2、没错,在声明变量的语句后面直接用赋值语句给变量初始化变量值。float a=2系统会自动将2转化为单精度。输入一个值给变量就不能用“double b=2,或float a=2;”而是用scanf函数来输入,比如要输入两个数值分别给单精度a和单精度b,代码是scanf("%f%f",&a,&b);
3、float a=3.14159L在这里是可以的,虽然在这里精度不会损失,但是L说明数据是long double。double a=3.14159f也没问题的,3.14159f单精度向精度更高的双精度转换。
2、没错,在声明变量的语句后面直接用赋值语句给变量初始化变量值。float a=2系统会自动将2转化为单精度。输入一个值给变量就不能用“double b=2,或float a=2;”而是用scanf函数来输入,比如要输入两个数值分别给单精度a和单精度b,代码是scanf("%f%f",&a,&b);
3、float a=3.14159L在这里是可以的,虽然在这里精度不会损失,但是L说明数据是long double。double a=3.14159f也没问题的,3.14159f单精度向精度更高的双精度转换。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
对于你的疑问,我一个一个帮你解决:
1.因为5/9:代表整除取商,即结果为0;
而 5.0/9:代表5除以9,即结果为0.555556;
所以两者结果完全不一样。
再比如:3/2=1,而3.0/2=1.5
2.double b=2这是对的,没有必要写成double b=2.0,因为系统会自动帮你转为对应的形式。
3.double a=3.14159f 好像没有这种写法,而且这种写法也不怎么简洁,使人明白;
如果要写,可以这样表达:
double a=3.14159;
(float)a
这里的(float)a代表将double型的a强制转换为float型,这样就达到了目的。
1.因为5/9:代表整除取商,即结果为0;
而 5.0/9:代表5除以9,即结果为0.555556;
所以两者结果完全不一样。
再比如:3/2=1,而3.0/2=1.5
2.double b=2这是对的,没有必要写成double b=2.0,因为系统会自动帮你转为对应的形式。
3.double a=3.14159f 好像没有这种写法,而且这种写法也不怎么简洁,使人明白;
如果要写,可以这样表达:
double a=3.14159;
(float)a
这里的(float)a代表将double型的a强制转换为float型,这样就达到了目的。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-12-04
展开全部
北wei回答得很好
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
float
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询