这个程序输出为什么全是0的浮点数啊,不应该是1吗
程序中1/i 但是i是1,为什么输出的值不是1
输出的第一个数是 1.000000,只有后面小于1的结果都变为了0.000000,因为1/i为整数结果,所以小数部分省略了;
1/i可以改为1.0f/i,将整数运算变为浮点类型运算,即可保留小数结果。
修改如下:
参考链接:
#include <stdio.h>
const double M_PER_K = 0.62137;
void pound(int n);
int main(void){
int i=1;
float n;
printf("Watch out! Here are come a bunch of fractions.\n");
while(i<30){
// https://az764295.vo.msecnd.net/stable/6c3e3dba23e8fadc360aed75ce363ba185c49794/VSCode-darwin.zip
// 将1/i 改为 1.0f/i 以保留小数结果
n = 1.0f/i;
printf(" %f\n",n);
i++;
}
printf("That's all, folks!\n");
return 0;
}