#include"stdio.h"
#include"string.h"
#include"conio.h"
#include"windows.h"
#include"math.h"
double funa (int n);
int main()
{
double u;
int y;
printf("请输入分母的值:");scanf("%d",&y);
u = funa ( y );
printf(" %f \n",u);
return 0;
}
double funa (int n)
{
double add = 0;
double t;
int k;
int s = 1;
for ( k = 1;k <= n; k ++ )
{
s = -s;
t = s * 1.0/k;
add = add + t;
}
return add;
}
一楼的方式可以,当然也可以把for循环里的那个s=-s写在 add=add+t;的后面 之所以你的结果为负是你的 一开始 就是 -1*1.0/1为-1
题目要求是 1-1/2+1/3-1/4....而你的程序变成了 -1+1/2-1/3+1/4...完全与题目相反,所以才为负,而不是得到你想要的结果
你开始给s赋值的时候应该为-1就可以了,因为是在双数项是负的