对楼上的改了一下,因为里面有个问题:
#include "stdio.h"
void main()
{
int i,j;
int a=1; //用来确定符号,用整形可以了;
double s=0;
for(j=2,i=1;i<=99;i++,j++)
{
s+=double(i)/j*a; //对i转化成double,不然i/j永远都是0;
a=-a;//改变符号;
}
printf("%f",s);
}
当然还可以有其它办法,但一定要记下这个特点:整形与整形作除法,只有整数部分.没有小数部分.
#include "stdio.h"
#include
#include
int main()
{
int i,j,k=0;
double s=0;
for(j=2,i=1;i<=99;i++,j++)
{
s+=pow(-1,k)*(float)i/j; //pow(a,b)是指a的b次方;
k++;
}
printf("%f",s);
system("pause");
}
运行正确,结果为0.688172;
#include "stdio.h"
void main()
{
int i,j;
double a;
double s=0;
for(j=2,i=1;i<=99;i++,j++)
{
a=1;
s+=i/j*a;
a=-1;
}
printf("%f",s);
}
#include
void main()
{
double sum=0;
double i=0;
for(i=1;i<100;i++)
sum+=i/(i+1);
printf("%lf\n",sum);
}