c语言中1除以2为什么等于0

如题所述

因为1默认的是int型的常量,所以1/2的输出结果为了与被除数一致就输出0(0.5进行int类型转换后就变成了0)


这里需要注意的就是C语言除法中,结果的数据类型是会转换成被除数的数据类型的。

比如:

int a = 4;
int b = 3;
float d = 5;
int c = a/b;    // 变量c的结果就是1,本来4/3=1.333(为了与被除数a的类型一致,所以取了整数部分,舍去小数部分)
float e = d/a;   // e的值就是1.25,因为d是float类型的

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-07-11
你问的是1/2 ,还是1%2?
如果是1/2 ,是0,因为1和2都是整形常量,c语言默认结果为整形值,所以是0.5取整为0,c语言的取整和数学上的不一样,无论小数部分是多少都是舍弃。
如果是1%2,也是0。因为%是取余运算符。1除以2的余数,也是0.本回答被提问者采纳
第2个回答  2012-07-11
因为,1是整形,2也是整形,所以除出来,必定要是整形(C语言里的要求),其实结果是0.5,但0.5转为整形的时候就是0,所以为0 ,如果你是1.0/2.0,那就应该会不一样啦~~ 应为1.0,2.0 都不再是整形,额,C好久没接触了,嘎嘎
第3个回答  2012-07-11
c语言中除的时候,只取其整数部分,1除以2整数部分为0,所以取0,取余的时候结果为1……
第4个回答  2012-07-11
1除2得到的本应该是0.5 ,但是由于除数和被除数都为int 类型,则.5部分就被省去,只剩下前面的0了。试试将1 2作为float类型的变量,再做除法,看看结果~

c语言中1除以2为什么等于0
1与2都是int型,两者相除,结果也是int型,所以会对结果进行取整,不进行四舍五入,直接丢掉小数部分,所以数学中的1\/2=0.5,c语言中取整后为0

c语言中1除以2为什么等于0
c语言中1除以2等于0的原因:1默认的是int型的常量,当1除以2时,在c语言中除号即分号的含义是除数去整,当一除以二时,等于零点五,结果取整则为零,所以1除以2在c语言中为0。c语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的...

C语言中为什么1\/2=0?
因为1\/2的结果是0。这个是C语言类型处理的问题。1\/2编译器处理的时候会认为1和2都是整数,而整数与整数相除结果还是整数,并且是向下取整的整数。虽然3.5是浮点数,但是1\/2是先计算的。如果想要1\/2结果是0.5就需要将式子转化为浮点数的除法,方法有两种:将1写成1.0,比如1.0\/2结果就是0.5。

c语言中1\/2表示用整数1除以整数2,为啥结果为0?
c语言中1\/2表示用整数1除以整数2,因为两者都是整数,其运算结果为0。C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。尽管C语言提供了许多低级处...

c语言中1除以2为什么等于0
因为1默认的是int型的常量,所以1\/2的输出结果为了与被除数一致就输出0(0.5进行int类型转换后就变成了0)这里需要注意的就是C语言除法中,结果的数据类型是会转换成被除数的数据类型的。比如:int a = 4;int b = 3;float d = 5;int c = a\/b; \/\/ 变量c的结果就是1,本来4\/3=1....

c语言1\/2为什么输出0啊
1和2都是整形数,1除以2的0.5,但是他会默认将结果转为整形,就是0,输出的时候是float型,所以将结果0转换为float型,就是0.00000。要想输出0.5,在1\/2前加上强制转换(float)

C语言为什么双目运算符1\/2=0?
数据类型是int的话取整自然是0了,是float的话就会是0.5了(如1.0\/2=0.5)

C语言中为什么我求1\/2结果为0.000000求大神帮助
1\/2关键在于运算符“\/”,“\/”是除法,求的是商,1\/2的结果是商0余1,所以结果为0.000000。(楼上的兄弟说的是对的,因为1\/2是整形的,才会这样。) 几再计算1%2,结果就是1了。

在C语言中,为什么1\/2的运算结果为0;1.0\/2.0的结果为0.5谢谢了,大神帮忙...
因为除号两边都是整数,1\/2的结构是0.5,取整数以后就是0 第二个是因为除数与被除数有一个是小数结果不会取整数,就是0.5

C语言中a=1\/2时printf(“%d”)和printf(“%f”)输出都是0
对于 第一种情况 a结果是0 因为是求模 所以输出什么类型都为0 对于第二种情况 a是2 是整形 整形输出 没有问题 而 用浮点格式输出 问题就来了 浮点在内存中 是以四字节格式 存储的 (可以查看课本)所以你的2就相当于符号 而后面全是0 所以最终结果就是0 ...

相似回答