#include <stdio.h>
int main()
{
int n;
int i;
double ret=0.0;
int sign = 1;
scanf("%d", &n);
for ( i=1; i<=n; i++ ) {
ret += 1.0*sign/i;
sign = -sign;
}
printf("%f\n", ret);
return 0;
上述程序是计算1-1/2+1/3-1/4+......,用sign这个变量记录每次循环正负值的变化,并称到1.0上。ret放置最后的和,设置成double类型。因为分数是浮点数。1.0*sign是为了使结果变成浮点数,仅仅sign/i只能等于0。
当然,也可以再for循环里放入if进行判断,如果i是偶数,就减,奇数就加。