-1.5的输出问题
本帖最后由 F–Social 于 2020-10-1 22:10 编辑那啥,萌新的我还不是很会描述遇到的问题,请各位多多见谅OvO
就是书上的一道题,写出解方程 2x + 3 = 0 的算法。
然后我就想了一下,aX + b =c 嘛,那 X 不就等于 (c - b) / a 嘛,然后我就写了这些代码:
#include <stdio.h>
int main ()
{
int a,b,c;
int x;
printf("please enter three number : ");
scanf("%d %d %d",&a,&b,&c);
x = (c- b) / a;
printf("x = %d",x);
return 0;
}
然后。。。。
运行结果如下:
please enter three number : 2 4 0
x = -2
please enter three number : 2 3 0
x = -1
(⊙o⊙)?
我就好奇第一个测试的时候解出来的结果时对的,但写原题的时候就错了,答案应该是-1.5,然后我就把占位符改成 %.2f 然后运行结果是X = 0.00
然后我就懵了,请各位多多指教,谢了!ovo
把a,b,c,x定义为float型
在C语言中,1/3=0、1.0/3才等于0.3333 巴巴鲁 发表于 2020-10-1 22:11
把a,b,c,x定义为float型
在C语言中,1/3=0、1.0/3才等于0.3333
哇偶,可以了,那可以多问一下,这是为啥吗?数据类型没好好听课的我 F–Social 发表于 2020-10-1 22:15
哇偶,可以了,那可以多问一下,这是为啥吗?数据类型没好好听课的我
整形除法返回的是整数部份,没有四舍五入的 F–Social 发表于 2020-10-1 22:15
哇偶,可以了,那可以多问一下,这是为啥吗?数据类型没好好听课的我
数据类型涉及隐式类型转化:double>float>int>short>char
1/3都是整型,结果也是整型,只保留整数位,即0
但1.0/3是浮点型除整型,结果也就是浮点型(参考第一行),所以就是0.333333 风过无痕1989 发表于 2020-10-2 01:50
整形除法返回的是整数部份,没有四舍五入的
好的好的,谢谢啦 巴巴鲁 发表于 2020-10-2 07:59
数据类型涉及隐式类型转化:double>float>int>short>char
1/3都是整型,结果也是整型,只保留整数位 ...
嗯嗯,好的好的,谢啦
页:
[1]