关于 计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值的体会
2017-11-03 19:07
323 查看
按照我最开始的思路就是执行下面的代码
#include<stdio.h>
#include<Windows.h>
int main()
{
int i=0;
double sum1=0;
double sum2=0;
double sum=0;
for(i=1;i<101;i++)
{
if(i%2==0)
{
sum1=sum1+1/i;
}
else
{
sum2=sum2+1/i;
}
}
sum=sum2-sum1;
printf("%lf\n",sum);
system("pause");
return 0;
}
就这样的程序我调了一个多小时,愣是没看出来。
然后发现i是整形,1/i也是整形,而sum1是浮点型,这样赋值就出现了问题
然后把1改成 1.0;
就这样程序改好了。
真是细节觉得成败。
其实这个程序还可以在简化一下
int main()
{
int i=0;
int flag=1;
double sum=0.0;
for(i=1;i<101;i++)
{
sum=sum+flag*(1.0/i);
flag = -flag;
}
printf("%lf\n",sum);
system("pause");
return 0;
}
直接用flag=-flag替代1和-1之间的变换
节省了许多无效的代码。
#include<stdio.h>
#include<Windows.h>
int main()
{
int i=0;
double sum1=0;
double sum2=0;
double sum=0;
for(i=1;i<101;i++)
{
if(i%2==0)
{
sum1=sum1+1/i;
}
else
{
sum2=sum2+1/i;
}
}
sum=sum2-sum1;
printf("%lf\n",sum);
system("pause");
return 0;
}
就这样的程序我调了一个多小时,愣是没看出来。
然后发现i是整形,1/i也是整形,而sum1是浮点型,这样赋值就出现了问题
然后把1改成 1.0;
就这样程序改好了。
真是细节觉得成败。
其实这个程序还可以在简化一下
int main()
{
int i=0;
int flag=1;
double sum=0.0;
for(i=1;i<101;i++)
{
sum=sum+flag*(1.0/i);
flag = -flag;
}
printf("%lf\n",sum);
system("pause");
return 0;
}
直接用flag=-flag替代1和-1之间的变换
节省了许多无效的代码。
相关文章推荐
- 计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值。
- 将数组A中的内容和数组B中的内容进行交换,计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值,1到 100 的所有整数中出现多少次数字9。
- 【c语言】计算1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100的值
- 计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值
- 1.将数组A中的内容和数组B中的内容进行交换2.计算1 / 1 - 1 / 2 + 1 / 3 - 1 / 4 + 1 / 5 …… + 1 / 99 - 1 / 100 的值
- 计算1/1-1/2-1/3-1/4-1/5-1/6.....+1/99-1/100的值
- 计算1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100的值
- 计算1/1-1/2+1/3-1/4+1/5...+1/99-1/100的值
- C语言:计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值
- 计算1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100的值
- 计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值
- 编程计算1*2*3+3*4*5+5*6*7+...+99*100*101的值。
- 计算1-1/2+1/3-1/4+.....+1/99-1/100的值
- 计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值
- 计算1*2*3+3*4*5+.......+99*100*101的值
- 计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值
- 计算1*2*3+3*4*5+...+99*100*101
- 计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值。
- 计算1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100的值
- 【c语言】 计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值。