在C语言中,输出命令行中没有任何小数的原因可能是因为数据类型不匹配或者格式化输出的问题。 数据类型不匹配:如果使用了错误的数据类型来存储带有小数的数值,输出时可能会丢失小数部分。例如,如果使用了整数类型(如int)来存储带有小数的数值,输出时只会显示整数部分,而丢失小数部分。 解决方法:使用正确的数据类型...
这是因为C语言并没有提供以八进制和十六进制输出浮点数的格式符,所以不能输出小数。
需要输入的格式为 %lf, 若使用%f读取的话,函数只按浮点数的规则读取,读取的位数变少了,其结果输...
你把那个1写成1.0,或者把2改成2.0也行,就会输出float型,因为你的两个数都是整数,整除之后的结果就是你想要得。
当然显示不了小数的撒,因为你的这个语句错误了。 avge=s/n。这个语句是错误的。你要把S改为float或者double型的,就可以了。现在两个都是整形的,而两个整形的相除不管怎么的,都是不会得到一个浮点型或者双精度型的数据的。要想得到一个double型的数据,那么你就要保证有一个数据是 double ,...
你把b的那句改改 b=((float)(a[0]+a[1]+a[2]+a[3]+a[4]))/5;这样就会有了
double8个字节 float 4个字节。。。你给double填4个字节它的高4个字节是空的。
代码如下: main() { int a,b; float j; scanf("%d%d",&a,&b); j=a*b/2; printf("%f",j); getch(); } 输入a=3,b=3,3x3除以2结果应该是4.500000,为什么结果输出时4.000000呢? 展开 5来自易的提问 回答 最佳答案 a*b/2 =3*3/2=9/2=4 整数的除法得到的商也是整数,小数部分被舍弃了,如...
在fun中,for(i=1;i<=x;i++)里面 由于条件开始就不成立,所以for循环没执行,返回的就是y=1, 转换成float就是1.00
你把(float) y= (a + b + c + d + e) / REN_OF_SHU ;这句改成y= (float)(a + b + c + d + e) / REN_OF_SHU ;应该就没问题了.因为C语言默认整数除以整数,只会得到整数,自动舍去小数,所以把一个整数强制转换成浮点数就可以避免这种状况,得到浮点数.