#include<stdio.h>
#include<math.h>
int main()
{
int n,i,deno;
double sum,flag;
scanf("%d",&n);
flag=1;
sum=0;deno=1;
for(i=1;i<=n;i++)
{
sum=flag*(i/deno)+sum;
deno+=2;
flag=-flag;
}
printf("%.3f\n",sum);
return 0;
}
这样运行之后 输入5 输出为1 但正确答案是0.917,,然后我deno定义为double类型时竟然神奇的又好了 有什么区别? 为什么呢
是不是只要运算中有一个浮点数得到的结果就是浮点数,譬如像我那样直接把deno定义double类型
追答嗯对的,精度低与精度高的数值操作后得精度较高同类型的值
是因为两个数都是整数吗?
追答是的