循环结构程序设计,,

编写程序,计算序列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;
}

img

有用请采纳!


#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);

}

img

img