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

2024-11-22 05:21:50
推荐回答(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);
}