编写程序,计算序列1-2/3+3/5-4/7+5/9-6/11+...+(-1)n-1n/(2n-1)的前n 项之和,要求n 为从键盘上获取的10-20 之间的正整数。求和结果用输出函数查看,保留三位小数。
代码如下:
#include <iostream>
#include<iomanip>
using namespace std;
void function(int n)
{
double sum=1.0;
cout<<"S="<<1;
for(int i=2;i<=n;i++)
{
if(i%2==0)
{
cout<<"-";
sum-=1.0*i/(2*i-1);
}else{
cout<<"+";
sum+=1.0*i/(2*i-1);
}
cout<<i<<"/"<<2*i-1;
}
cout<<"=";
cout<<fixed<<setprecision(3)<<sum<<endl; //保留3位小数
}
int main()
{
int n;
cout<<"请输入:"<<endl;
while(true)
{
cin>>n;
if(n<10||n>20)
cout<<"输入有误!请重新输入:"<<endl;
else{
function(n);
break;
}
}
return 0;
}
有用请采纳!
#include <stdio.h>
int main()
{
int pos = -1;
float result=1.0;
int n;
scanf("%d",&n);
printf("1");
for(int i=2;i<=n;i++)
{
result = result + (float)(pos * i )/ (2*i -1);
printf(" + (%d/%d) " , pos*i,2*i-1);
pos = -pos ;
}
printf("\r\nresult = %.3f\r\n",result);
}