这个程序是关于为不同的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的结果。
问题出在这里:
t=(100/(1+2i));
看来你打算用i
乘以2,但忘记乘法运算符*
。你所拥有的是2i
,它实际上是一个复数常数。请注意,这不是标准C,而是GCC扩展(-pedantic
开关会发出警告)。
添加乘法运算符,它应该按预期工作。
t=(100/(1+2*i));