编写程序求:1-1⼀2+1⼀3-1⼀4+1⼀5……+(-1)N减一次方1⼀n。在源程序中输入n的值

2024年11月22日 05:21
有2个网友回答
网友(1):

用递归函数写。

注意/是整除符号,公式写1.0/n就可以了。

#include
#include
float fun(float *sum,int n);//调用sum传NULL
int main()
{
    int i,n;
    printf("输入n的值:");
    scanf("%d",&n);
    printf("1");
    for(i=2;i<=n;i++)
        printf("%s/%d",pow(-1,(i-1))>0?"+1":"-1",i);
    printf("=%f\n",fun(NULL,n));
    return 0;
}
float fun(float *sum,int n)
{
    float sum2=0;
    if(!sum)
        sum=&sum2;
    if(n==0)
        return *sum;
    (*sum)+=pow(-1,(n-1))*(1.0/n);
    return fun(sum,n-1);

}

网友(2):

#include
void main() { int n,i,f; double s,t;
  scanf("%d",&n); s=0; f=1;
  for ( i=1;i<=n;i++ ) { t=1; t/=i; t*=f; s+=t; f*=(-1); }
  printf("%lf\n",s);
}