用递归函数写。
注意/是整除符号,公式写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);
}
#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);
}