你的输入n是什么意思?
如果是计算
1-1/2+1/3-1/4+...+1/99-1/100
那么不需要输入n,其他不变就是了
如果是计算
1-1/2+1/3-1/4+...+1/n
才需要输入n
代码如下(不需要math.h头文件):
#include
void main()
{
double sum;
int i,n,m; //加个变量i
printf("请输入n:");
scanf("%d",&n);
for(i=1,m=1,sum=0;i<=n;i++) //n改为i,100改为n
{
sum+=m*(1.0/i);
m=-m;
}
printf("sum=%lf\n",sum);
}
#include
#include
int main() //main 最好返回int,有时候是硬性要求……
{
double sum;
int n,m;
printf("请输入n:");
scanf("%d",&n);
for(n=1,m=1,sum=0;n<=100;n++) //别忘了1/100
{
sum+=m*(1.0/n);
m=-m;
}
printf("sum=%lf\n",sum);
return 0; //main 最好返回int,有时候是硬性要求……
}
编译的时候别忘了加上-lm
然后应该没问题啊,
我都执行了……
Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.
C:\Documents and Settings\Mark>a
n:1
sum=0.698172
C:\Documents and Settings\Mark>
#include
#include
void main()
{
double sum;
int n,m;
printf("请输入n:");
scanf("%d",&n);
for(n=1,m=1,sum=0;n<100;n++)//这里应该是 n<=100 要把1/100也算进去
{
sum+=m*(1.0/n);
m=-m;
}
printf("sum=%lf\n",sum);
}
这个每次都是负的啊 你得增加一个标志位 偶数是负的 奇数是正的 if(m%2==0)flag=-1:else flag=1;