static void Main()
{
double sum = 0.0;
int fh = -1;
for (int n = 1; n <= 100; n++)
{
sum =sum + fh* (-1)* 1.0 / (double)n;
}
Console.WriteLine("the sum of 1-1/2+1/3+...-1/100 is :{0}", sum);
}
static void Main()
{
double sum = 0.0;
int fh = -1;
for (int n = 1; n <= 100; n++)
{
fh=fh*(-1);
sum+=fh*1.0 / (double)n;
}
Console.WriteLine("the sum of 1-1/2+1/3+...-1/100 is :{0}", sum);
}这俩个的目的是一样的,都是为了求得1-1/2+1/3+...-1/100 的和,
但第一个得到的结果确是1+1/2+1/3+...+1/100 的结果,第二个才能得到正确结果,怎么也看不明白哪有毛病了。麻烦您能给指点一下么?谢谢!
{
double sum = 0.0;
int fh = -1;
for (int n = 1; n <= 100; n++)
{
sum =sum + fh* (-1)* 1.0 / (double)n;
}
Console.WriteLine("the sum of 1-1/2+1/3+...-1/100 is :{0}", sum);
}
static void Main()
{
double sum = 0.0;
int fh = -1;
for (int n = 1; n <= 100; n++)
{
fh=fh*(-1);
sum+=fh*1.0 / (double)n;
}
Console.WriteLine("the sum of 1-1/2+1/3+...-1/100 is :{0}", sum);
}这俩个的目的是一样的,都是为了求得1-1/2+1/3+...-1/100 的和,
但第一个得到的结果确是1+1/2+1/3+...+1/100 的结果,第二个才能得到正确结果,怎么也看不明白哪有毛病了。麻烦您能给指点一下么?谢谢!
执行后 fn就成了1了,也就是这个是个运算后的赋值
而 sum =sum + fh* (-1)* 1.0 / (double)n;
中,fh始终是-1,在循环中没有赋值