
求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;
} 展开
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;
} 展开
4个回答
展开全部
#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;
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;是表示什么?
展开全部
这个正负是交叉的,所以你弄的循环步距应该是2吧!
把两个for循环的括号里改成 i=i+2 试试。
把两个for循环的括号里改成 i=i+2 试试。
追问
我是把这个分成两个数列来做了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
语法错、模型错,改错不如重做:
#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;
}
#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;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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
我没试
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
我没试
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询