int a,b;
a=9;b=5;
printf("%f",a/b);
9/5,如果以%d输出是1,这个我理解,只留整数位1
为什么以%f输出成了0.000000呢?
C语言里9\/5 以%f输出为什么是0呢?
因为9\/5结果为1,在内存中应该是(假设占4个字节)00000000 00000000 00000000 00000001,而如果把这个值看做float输出的话就是0了,这个与浮点数的存储方式有关,你百度一下吧。
C语言%f输出为什么小数位都为零了啊
printf("%f",c);}为什么输出是0.000000而不是0.500000啊 shownhone1 | 浏览1224 次 |举报 我有更好的答案推荐于2017-12-15 13:47:15 最佳答案 你 的写的这个是得不到float的这样可以:c=1.0*a\/b;你 上边的a是int b也是int结果肯定是int的0 赋值给float就变成0.000000了知道了吧 本回答由提问者推荐 ...
C语言,这个华氏温度换摄氏温度为什么结果都是0.00呀?
scanf("%f",&F);C=(5\/9)*(F-32); \/\/若为5\/9那么就为0,改为5.0\/9就可以了。printf("相应的摄氏温度为:%4.2f\\n",C);}
C语言输出的总是0.000,求大神指教。程序如下。
scanf("%f",&f);\/\/double类型的输入不能使用%f进行输入,得用%lf才能正常得到a的值。
c语言的double 和int的区别,%d和%f的区别
double:双精度实型数,即我们通常意义下的小数,例如1.25、1.37、5.0等。d:这是C语言中scanf用于输入整数的格式,输入整数的格式是scanf("%d",&a)。f:这是C语言中scanf用于输入小数的格式,输入整数的格式是scanf("%lf",&a)。在你的公式C=(F-32)*5\/9计算结果应该为双精度,不能用int...
C语言下面简单代码输出的为什么都是0 而不是1 2 3 4 5 6 7 8 9 请...
类型不匹配。%d是取int型数字,通常都是4个字节。float一般都是8个字节。所以用%d打印的话只会取其前四个字节。按照二进制排列顺序,在数字不是特别大得时候,前四个字节都是0.把%d换成%f打印试试。
C语言中的问题不明白为什么 新人麻烦详细解释一下谢谢
这里scanf指定逗号为输入的分隔符号。所以输入时数字和字符之间必须有逗号。scanf不指定分隔符时,默认以空白字符(空格、回车、制表符)为分隔符。PS:如果写%d%c不指定分隔符号。由于第二个变量是字符型,输入时中间不要加空格符,否则会将空白符号做为字符接收。
C语言,计算华氏和摄氏温度转换,代码哪里出问题了,为什么结果不对?
float f,c;printf("输入华氏温度:\\n");scanf("%f",&f);c=5*(f-32)\/9.0;\/\/这里,f是小写的,“*”表示乘号,不能省略 printf("对应的摄氏温度是:%5.2f\\n",c);return 0;\/\/这个不能没有返回值 } 不懂追问我,满意请采纳,谢谢 祝愉快非常感谢您的耐心观看,如有帮助请采纳,祝...
C语言哪里错了
include <stdio.h> int main(){ float f,c;f=64.0;\/\/c=(5\/9)*(f-32); \/\/这个错了,5\/9给当成整数除法了,结果是0,改正如下 c=(5.0\/9)*(f-32); \/\/把5或者9改成5.0或9.0就可以了 printf("c=%f\\nf=%f",c,f);return 0;} ...
这个编程为什么一定要5.0结果才不会是0,而且-号是哪里来的。结果是...
scanf("%f",&f);c=(5\/9)*(f-32);结果为0,因为5和9都是整数,在C语言中,两个整数相除,结果取整,在数学中5\/9=0.555...,但是在C语言中,取其整数部分,为0,所以要把5改成5.0,或者把9改成9.0,或者5和9都改成5.0和9.0,那么就变成了float型数相除,结果为float型。