求1-1/3+1/5-1/7+1/9…前100项之和 c++ 求人帮我修改正确来

#include<iostream.h>voidmain(){inti;doubleS,S1=0,S2=0,a[101];for(i=1;i<=100;i++)a[i]=... #include<iostream.h>
void main()
{
int i;
double S,S1=0,S2=0,a[101];
for(i=1;i<=100;i++)
a[i]=1/(2i-1);
for(i=1;i<=100;i=i+4)
S1=S1+a[i];
for(i=3;i<=100;i=i+4)
S2=S2+a[i];
S=S1-S2;
cout<<S<<endl;
}
展开
 我来答
waxm007
推荐于2017-10-27 · TA获得超过2078个赞
知道小有建树答主
回答量:345
采纳率:50%
帮助的人:299万
展开全部
#include <iostream>
using namespace std;
int main()
{
int i;
double S,S1=0,S2=0,a[101];
for(i=1;i<=100;i++)
//此处应该写成 2*i的形式,但是为了符合题意,必须写成2.*i ,目的是整形转化为浮点型
a[i]=1/(2.*i-1);
for(i=1;i<=100;i=i+4)
S1=S1+a[i];
for(i=3;i<=100;i=i+4)
S2=S2+a[i];
S=S1-S2;
cout<<S<<endl;
return 0;
}
//最后你程序的运行结果是 0.864461,误差的原因是你的数组和分2项相加的误差造成的
//以下是我的做法
===================================
#include <iostream>
using namespace std;
int main()
{
double sum=0;
for(int i=1,k=1;i<=100;i++,k*=-1)
sum=sum+1./(i*2-1)*k;
cout<<sum;
return 0;
}
//结果为:0.782898 如果是N项之和,N趋近无穷大,那么极限为 π/4
追问
谢谢,改好了。不过using namespace std;是表示什么?
知道所以
2011-09-09 · TA获得超过469个赞
知道小有建树答主
回答量:222
采纳率:0%
帮助的人:72.5万
展开全部
这个正负是交叉的,所以你弄的循环步距应该是2吧!
把两个for循环的括号里改成 i=i+2 试试。
追问
我是把这个分成两个数列来做了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
oakwood
2017-10-27 · TA获得超过877个赞
知道小有建树答主
回答量:942
采纳率:77%
帮助的人:262万
展开全部
语法错、模型错,改错不如重做:
#include <iostream.h>
void main() {
int i;
double s=0;
for(i=1;i<=100;i++) s+=((i%2)?1:(-1)) / (i*2-1);
cout << s << endl;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wkdhuiyi
2011-09-09 · TA获得超过117个赞
知道答主
回答量:141
采纳率:0%
帮助的人:106万
展开全部
for(i=1;i<=100;i=i+4)
S1=S1+a[i];
for(i=3;i<=100;i=i+4)
S2=S2+a[i];
你把i=i+4换成i=i+2
然后i=3改成i=2

我没试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式