请教C++问题,分子分母不能全部定义为int型吗?

来源:百度知道 编辑:UC知道 时间:2024/06/05 21:47:15
程式如下
求1-1/2+1/3-1/4......+1/99-1/100
#include<iostream.h>
void main()
{
float sum=1;
int a=1,i=2;
while(i<=100)
{
a=-a;
sum=sum+a/i;
i=i+1;
}
cout<<sum<<endl;
}

可执行的结果始终等于1,
但是如果我把a或者i定义成float,执行的结果就是对的?
难道分子分母不能同时定义成int型吗??
谢谢了

因为有这个式子sum=sum+a/i;
如果a,i都是int,则系统会使a/i的结果为int,但这样显然会使计算有误,所以在这题里不能让他们都为int,所以分子分母定义成什么类型要视具体题目而定