输入一个正整数n,计算1 - 1/4 +1/7 -1/10 +1/13 -1/16+............的前n项之和,输出时保留3位小数
#include<stdio.h>#include<math.h>intmain(void){inti,n,b,c,d;doublesum,a;scanf("%d",&n...
#include <stdio.h>
#include <math.h>
int main(void)
{
int i,n,b,c,d;
double sum,a;
scanf("%d",&n);
sum=0;
b=1;
c=0;
d=1;
for(i=1;i<=n;i++)
{
a=1/b;
b++;
d=d+3;
c=pow(-1,b);
sum=sum+a*c;
}
printf("sum=%.3lf",sum);
return 0;
}
我错哪了 展开
#include <math.h>
int main(void)
{
int i,n,b,c,d;
double sum,a;
scanf("%d",&n);
sum=0;
b=1;
c=0;
d=1;
for(i=1;i<=n;i++)
{
a=1/b;
b++;
d=d+3;
c=pow(-1,b);
sum=sum+a*c;
}
printf("sum=%.3lf",sum);
return 0;
}
我错哪了 展开
1个回答
展开全部
程序中的a b 不知道做什么用的。。。
pow(x,y)中 x, y值反了,
跟踪发现c=pow(x,-1)值为0
这里因为c是整型,自动忽略小数位,值为0
所以sum=sum+a*c;得到sum=0恒成立
#include <stdio.h>
#include <math.h>
int main ()
{
int i=0,n=0,d=0; //int b=0;
double c=0;
double sum=0; //int a=0;
while(1)
{
scanf("%d",&n);
b=1;
c=0;
d=-2;
sum =0;
for(i=0;i<n;i++)
{
// a=1/b; 不知道你的a 和b是干什么用的?
// b++;
d=d+3;
c=pow(d,-1.);
sum=sum+pow(-1,i)*c;
}
printf("sum=%.3lf\n",sum);
}
return 0;
}
以验证
pow(x,y)中 x, y值反了,
跟踪发现c=pow(x,-1)值为0
这里因为c是整型,自动忽略小数位,值为0
所以sum=sum+a*c;得到sum=0恒成立
#include <stdio.h>
#include <math.h>
int main ()
{
int i=0,n=0,d=0; //int b=0;
double c=0;
double sum=0; //int a=0;
while(1)
{
scanf("%d",&n);
b=1;
c=0;
d=-2;
sum =0;
for(i=0;i<n;i++)
{
// a=1/b; 不知道你的a 和b是干什么用的?
// b++;
d=d+3;
c=pow(d,-1.);
sum=sum+pow(-1,i)*c;
}
printf("sum=%.3lf\n",sum);
}
return 0;
}
以验证
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |