这个程序用这个方法算,太麻烦了,不过已经改好了:#include#includeint main(){ int i,n,N,C; double A,B,D,sum; sum=0; A=0.101; for(n=1,i=1;n<=3;n++,i++) //循环范围错了 { A=A*10; N=(int)A%10; //只能取末位 B=N; D=pow(2,i); D=B/D; //不能保存到int中 sum=sum+D; //这里加错了 } printf("%f",sum);}