[求助]一道简单的C程序的疑问?
问题是要求:1-1/2+1/3-1/4+1/5-1/6.......+1/99-1/100;这个问题我想了很久,最先想到的是将加的和减的区分开,但后来发现算出来的是小数(个人感觉这道题应该是算分数)
于是又想用几个变量分别储存加和减的分子分母 这是我的代码:
#include <stdio.h>
void main()
{
double n=1,m=2,e,f;
double a=n,b=1,c=m,d=1;
while (n<=99)
{
b=(n+2)*b+a;
a=(n+2)*a;
n=n+2;
}
while (m<=100)
{
d=(m+2)*d+c;
c=(m+2)*c;
m=m+2;
}
e=b*c-a*d;
f=a*c;
printf("\n\n\n");
printf("and=%d/%d\n",b,a);
printf("minus=%d/%d\n",d,c);
printf("sum=%d/%d\n",e,f);
}
大家运行看看 我感觉最后sum的分子分母都是负数,虽然还是正数,但有点想不通,特别是and的分母为负数更想不通了
麻烦高手解释一下这个程序 可不可以介绍一个更简单的算法