c语言计算 1-1/2+1/3-1/4+1/5-1/6....…±1/n 的值
我写的是#include<stdio.h>main(){intn,i;floatsum=0,term=1;for(n=1;n<=30;n++){if(n%2==1){te...
我写的是
#include<stdio.h>
main()
{
int n,i;
float sum=0,term=1;
for(n=1;n<=30;n++)
{
if(n%2==1)
{
term=term/n;
}
else
{
term=-term/n;
}
sum=sum+term;
}
printf("%f",sum);
}
当n=30是算出来的结果是0.381773
可是正确答案是0.676758 到底哪里出错了,请大神来帮忙,,谢谢!! 展开
#include<stdio.h>
main()
{
int n,i;
float sum=0,term=1;
for(n=1;n<=30;n++)
{
if(n%2==1)
{
term=term/n;
}
else
{
term=-term/n;
}
sum=sum+term;
}
printf("%f",sum);
}
当n=30是算出来的结果是0.381773
可是正确答案是0.676758 到底哪里出错了,请大神来帮忙,,谢谢!! 展开
3个回答
展开全部
因为term的值改变了 不再是1 也可以在循环里赋值1
#include<stdio.h>
main()
{
int n;
float sum=0,term;
for(n=1;n<=30;n++)
{
if(n%2==1)
{
term=1.0/n;
}
else
{
term=-(1.0)/n;
}
sum=sum+term;
}
printf("%f",sum);
}
#include<stdio.h>
main()
{
int n;
float sum=0,term;
for(n=1;n<=30;n++)
{
if(n%2==1)
{
term=1.0/n;
}
else
{
term=-(1.0)/n;
}
sum=sum+term;
}
printf("%f",sum);
}
追答
抱歉刚刚上线看到,因为每次都进行运算,term都被重新赋值,而不是要做分母的1
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的问题是。。。 term问题 参考
#include<stdio.h>
main()
{
int n,i;
float sum=0,term=1;
for(n=1;n<=30;n++)
{
if(n%2==1)
{
term=term/n;
}
else
{
term=-term/n;
}
sum=sum+term;
term=1; // 你运行第二次的时候,term!=1 而是1/2; 初始化term=1 就好了
}
printf("%f",sum);
}
#include<stdio.h>
main()
{
int n,i;
float sum=0,term=1;
for(n=1;n<=30;n++)
{
if(n%2==1)
{
term=term/n;
}
else
{
term=-term/n;
}
sum=sum+term;
term=1; // 你运行第二次的时候,term!=1 而是1/2; 初始化term=1 就好了
}
printf("%f",sum);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
/*
0.676758
Press any key to continue
*/
#include<stdio.h>
int main() {
double n,sum = 1,sign = 1;
for(n = 1;n < 30;n++) {
sign = -sign;
sum += sign/(n + 1);
}
printf("%lf\n",sum);
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询