始终打印相同的浮动值

问题描述 投票:-3回答:1

这个程序是关于为不同的t值打印浮点值i,但它每次都打印相同的值。即使t的值正在改变,它总是为n的每个值打印零。

为什么会这样?

#include <stdio.h>

int main(){
    float n;
    float sum=0,t,s=1,i;
    scanf("%f",&n);
    for(i=0;i<n;i++){

        t=(100/(1+2i));
        printf("\n%f",t);
    }
}

输入:5

输出:

0.000000
0.000000
0.000000
0.000000
0.000000

这是ideone.com的结果。

c gcc
1个回答
4
投票

问题出在这里:

t=(100/(1+2i));

看来你打算用i乘以2,但忘记乘法运算符*。你所拥有的是2i,它实际上是一个复数常数。请注意,这不是标准C,而是GCC扩展(-pedantic开关会发出警告)。

添加乘法运算符,它应该按预期工作。

t=(100/(1+2*i));
© www.soinside.com 2019 - 2024. All rights reserved.