c语言中int a=1,b=2,c c=1.0/b*a 输出结果为什么

如题所述

结果是c的值是0
因为1.0 / b 都会转换位浮点型,结果是0.5, 0.5 * a 也是会把a转为浮点型,结果是0.5

而c是整形,会对右边运算的结果取整,所结果就是0了。
温馨提示:内容为网友见解,仅供参考
无其他回答

c语言中int a=1,b=2,c c=1.0\/b*a 输出结果为什么
因为1.0 \/ b 都会转换位浮点型,结果是0.5, 0.5 * a 也是会把a转为浮点型,结果是0.5 而c是整形,会对右边运算的结果取整,所结果就是0了。

C语言%f输出为什么小数位都为零了啊
{ int a=1,b=2; float c; c=a\/b; 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就...

C# int a = 1;int b = 2;double xxx = a\/b;xxx的值怎么总是0?
你把a 和b设置成double 试试。 两个数字都是int 除不尽 当然就是0了

C语言中的if语句问题:
先解释代码运行结果为什么是:a=1,b=0,c=1 因为if里面的条件是短路条件。因为 ++a>0 是true,所以不再执行 后面的++b>0 了。因此,b的值没有变。你的选择题答案是B,因为 A 中 1 默认是int,而另外的三个变量也都是 int变量。因此表达式最后的结果也会是int型的,也就是说最后的结果是...

C语言中一个整数除以另一个整数结果为什么只取整?
因为int 型本身没小数部分,int和int型的数据操作,得到的结果肯定是整数型的,所以小数部分直接去掉了,就算用%f去输出,也不会是正确的结果。例如:int a=5, b=3;float c;c = a\/b; \/\/ 输出结果为1.0 c是float型的,按常理c应该等于1.667,但是由于被除数(即变量a)的数据类型为int型...

C语言中 int a=1 printf(“%f”,a) 输出的为什么是0? 不是1.0呢?
而把一个 int当成浮点数,因为两种类型的存储结构是完全不同的,后果就难以预料了,有可能程序崩溃,也可能正常运行,但得不到正确的结果。具体到楼主这个问题, 把整数1当成浮点数处理,那就是符号位0,阶码0,尾数1,是非规范浮点数,不同编译器处理结果可能不同。 所以,不要写出这样的代码。

VC++豆号表达式问题达人进!
变量声明的时候的逗号只是分割符,不是操作符,所以只有d=0 逗号表达式是这样的:int a = 1, b = 2, c = 3;int d = a*2, b*2, c*2;\/\/逗号表达式 此时d=6;\/\/c*2;

C语言中两个数组相除的问题
一、因为a和b数组是整数,整数相除,c是默认取整的,而*1.0之后就将数字变成浮点型的了,可以得出正确答案 二、c[1]=(1.0*b[1])\/a[1]或者(float)(b[1])\/a[1],强制类型转换。三、乘以1.0是将整数转换为浮点型数(小数),1是整数,乘以整数还是整数,所以不起作用。

3.若有以下程序段,int c1=1,c2=2,c3; c3=1.0\/c2*c1 则执行后,c3中的...
结果是0,编译器会把结果0.5强制转换为int型,丢失小数部分

C语言实型变量中为什么只能用1.0\/2
除法对于整数来说是取整的,如果是1\/2,那么结果就是0了,所以最后结果也是0。变成1.0\/2之后系统就知道这是进行浮点运算,所以会有正确结果0.5

相似回答