我写出来的代码在验证的时候前两步编译和建立都无错误,就是最后一步运算输入1结果出来的却是0.5然后2是-0.33。感觉是计算式错误,但是我找不出来,请求大佬帮我看看。
#include<stdio.h>
#include<math.h>
int main()
{
double n,i,sum,y,a;
while(scanf("%lf",&n)!=EOF)
{
sum = 0;
for(i=1;i<=n;i++)
y = n+1;
a = pow(-1,y);
sum = sum+(1.0/i*a);
printf("%.2lf\n",sum);
}
return 0;
}
你的程序和题目是两码事。
先抛开题目,说说你程序的问题。
1、a=pow(-1,y),对于给定的n,则a的正负是一定的,起不到改变正负号的作用。
2、for循环需要用大括号括起来。
3、其它不再赘述,下面是具体修改的方法。
修改:
#include<stdio.h>再说题目。如果原题确实如你所写,那么应该是一直加下去,而不是让你输入项数。程序如下:
#include <stdio.h>