-3 c floating-point gcc
该程序是关于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);
}
}
Run Code Online (Sandbox Code Playgroud)
输入5
输出:
0.000000
0.000000
0.000000
0.000000
0.000000
Run Code Online (Sandbox Code Playgroud)
这是ideone.com中的结果。
问题在这里:
t=(100/(1+2i));
Run Code Online (Sandbox Code Playgroud)
看来您打算将2乘以i,但忘记了乘法运算符*。相反2i,您拥有的实际上是一个复数常数。请注意,这不是标准C,而是GCC扩展名(-pedantic开关会发出警告)。
添加乘法运算符,它将按预期工作。
t=(100/(1+2*i));
Run Code Online (Sandbox Code Playgroud)