#include<stdio.h>
int main()
{
int i;
int sum=0;
for (i=1;i<=10;++i)
{
float k;
k=1/i;
sum =sum+k;
}
printf("sum=%f\n",sum);
return 0;
}
c 语言程序 结果为什么是0.000000
关键在于你定义的i是int型,计算k=1\/i;的时候,其实是先计算1\/i,计算出来的值为0,然后0进行类型转换赋值给k,则k = 0.000000。所以你每次加的其实都是0.000000。这样导致了最后的结果。---您的采纳使我们前进的动力--- ---能言善编团队--- ...
在C语言里,如果定义变量时INT型,但输出是用%f,为什么结果是0.000000
在输出时如果把%后面的字母用错,则输出的结果都是0. 当然如果是double 和float 等则会输出为0.000000 小数点后默认为6位小数
printf("%f\\n",5)的输出结果为什么是0.000000
1,之所以没输出5,这是C语言设计的原因。2,之所以输出0,这是计算机体系结构的问题。具体来说:printf函数不会进行任何类型转换,它只是从内存中读出你所提供的元素的值(按照%d,%f等控制字符提示的格式)。C语言设计中,int类型一般是32bit或者16bit,而float一般是64bit,并且有可能使用科学计数保存。
...C语言程序时出现了结果为0.000000的错误,不知为何,求请教。_百度知 ...
double请使用%lf float 才用的是%f
C语言实型变量中为什么只能用1.0\/2
除法对于整数来说是取整的,如果是1\/2,那么结果就是0了,所以最后结果也是0。变成1.0\/2之后系统就知道这是进行浮点运算,所以会有正确结果0.5
C语言中数组结束标志问题
'\\0'在C语言程序中形式上表示字符'\\0',实质上是数值0.把它赋值给一个浮点数变量,编译器会自动转换成浮点格式的0,也就是0.000000。
为什么计算机程序中整除运算得0呢?
(1)若是计算机程序,整除运算,结果得0。例如,计算机c\/c++ 语言程序:double x; x = 1\/20 + 1\/30; printf("%lf",x);输出为 0.000000。 因为 1,20,30 都是整型常量,商为整型,不计小数部分,也不考虑四舍5入。(2)若是小学数学,那么:1\/20 + 1\/30 , 通分,分母 ...
C语言保留两位小数的问题
的结果是0.9926。因为 (int)强制转换使0.9926取整,变成整型数字0。又因为“%f”的转换说明要求输出浮点数,程序给0后补零,变成0.000000。你的题目是“C语言保留两位小数的问题”,想给该程序结果保留两位小数,应将代码改成:include <stdio.h> double a = 0.9876;int main(void){ printf("%...
c语言中定义了整型数据但是输出的时候我把它调为浮点型,运行输出了不是...
printf("b=%f,a=%d\\n", (float)b, (int)a); 原因很简单,格式串中的 %f 要求对应的参数必须是浮点型,否则输出就不正确。你已经看到了,输出是 b=0.000000,不正确吧?整型数据调为浮点型必须使用 (float)b,而不是改一下格式串为 %f 就能做到的。
为什么c语言里浮点型数据按整型格式输出结果是0??
按照规则编译器是不可能知道你希望第二个参数是浮点数类型,所以也就不可能把int类型的2自动转换成浮点类型的2。另外%f需要的是64位的double,现在你只提供了低32位,高32位只能依赖栈里原有的数据。double类型最高12位小于1003,对应的十进制数就肯定小于0.000001,所以很容易就会输出0 ...