C语言。1-1/4+1/7-1/10+1/13+……的前n项和算不出结果啊。求9

#include <stdio.h>
#include <math.h>
int main(void)
{
int denominator, flag;
int repeat, ri;
double eps, item, sum;

scanf("%d", &repeat);
for(ri = 1; ri <= repeat; ri++){
scanf("%lf", &eps);
item=1.0;
sum=1;
flag=1;
denominator=1;
while(1/denominator>=eps){
sum=sum+item;
flag=-1*flag;
denominator=denominator+3;
item=flag*1.0/denominator;
}

printf("sum = %.6f\n", sum);

}
return 0;
}

第1个回答  2012-03-29
#include <stdio.h>
#include <math.h>
int main(void)
{
int denominator, flag;
int repeat, ri;
double eps, item, sum;

scanf("%d", &repeat);
for(ri = 1; ri <= repeat; ri++){
scanf("%lf", &eps);
item=1.0;
sum=0;
flag=1;

denominator=1;
while(eps--){//这里直接这样就好 sum初值为0就可以了
sum=sum+item;
flag=-1*flag;
denominator=denominator+3;
item=flag*1.0/denominator;
}

printf("sum = %.6f\n", sum);

}
return 0;
}追问

你的意思是eps为+到n项.
但是我的意思是要加到某特定小数(eps),0<eps<1

追答

eps不就是你要算的前几项吗? 我就让它循环几次 循环一次就自减一没错吧

追问

不是拉,eps是小数,输入0.1就循环到1/10。

追答

这个答案难道不行 出不来你要的答案吗 晕

追问

试验系统的题,固定的。

第2个回答  2012-03-29
你的denominator是整形的,1/denominator的结果始终只是个整数,一旦denominator大于1了,1/denominator的结果就是0追问

应该怎么改

追答

改成(double)1/denominator应该就好了的

本回答被提问者采纳

C语言。1-1\/4+1\/7-1\/10+1\/13+……的前n项和算不出结果啊。求9
denominator=1;while(eps--){\/\/这里直接这样就好 sum初值为0就可以了 sum=sum+item;flag=-1*flag;denominator=denominator+3;item=flag*1.0\/denominator;} printf("sum = %.6f\\n", sum);} return 0;}

C语言编程:本题要求编写程序,计算序列 1 - 1\/4 + 1\/7 - 1\/10 +...
i;double sum=0.0;printf("请输入数字n:");scanf("%d",&n);for(i=1;i<=n;i++)sum+=pow(-1,i+1)\/(3*i-2.0);printf("sum=%0.3f\\n",

本题要求编写程序,计算序列 1 - 1\/4 + 1\/7 - 1\/10 + ... 的前N项...
分析

编程C语言1-1\/4+1\/7-1\/10...输入n,计算前n项和
C语言的除法\/默认两边如果是整型,则结果也是整型,例如3\/2=1,所以你要写成1.0\/(3*i-2)

计算1-1\/4+1\/7-1\/10+1\/13...求前n项和
include<stdio.h> void main(){ int n,i;double result,flag;\/\/flag应设为浮点型,1\/2会等于0 printf("请输入数值n:");scanf("%d",&n);for(i=1,result=0,flag=1;i<=3*n-2;i=i+3){ result=result+flag*1\/i;flag=-1*flag;} printf("%lf",result);} ...

要求编写程序,计算序列1-1\/4+1\/7-1\/10+...的前N项之和。
在编写程序计算序列1-1\/4+1\/7-1\/10+...的前N项之和时,一个巧妙的方法是通过设置一个取反标志。以下是一个简单的C语言实现:为了计算这个交错级数,我们可以利用一个取反变量。以下是代码示例:#include<stdio.h>intmain(){intn,i,flag=1;doublesum=0.0;printf("请输入数字n:");scanf("...

要求编写程序,计算序列 1 - 1\/4 + 1\/7 - 1\/10 + ... 的前N项之和?
算法上没有什么问题,我手头上没有编译器 估计你的问题出在第八行:sum=sum+1.0\/-3(3*i-2)建议改为:sum=sum-1.0\/3(3*i-2)

C语言题目:输入一个正整数n,计算1-1\/4+1\/7-1\/10+1\/13-1\/16+…的前n...
if(i%2=0);要改为if(i%2==0);后面的一个if也是一样

C语言题目:输入一个正整数n,计算1-1\/4+1\/7-1\/10+1\/13-1\/16+…的前n...
“int main(void)”有点奇怪,我只见过void main()和int main()这两种形式;“printf("sum=%.3f",&sum);”应该为printf("sum=%.3f",sum);,输出时不需要用&符号;就这么多吧,还不行的话我也无能为力了;

用C++语言写1-1\/4+1\/7-1\/10...的前n项和,请问我那里写错了?为什么我的...
item和sum不能设为int型,实数要是float。include<stdio.h> int main(void){ int n,i,flag=1;float item,sum=0;printf("Enter n");scanf("%d",&n);for(i=1;i<=n;i=i+3){ item=flag*(1.0\/i);sum=sum+item;flag=-flag;} printf("sum=%f\\n",sum);return 0;} ...

相似回答