樱花大战, 有爱.
我这样写为什么会死循环!帮忙讲解下~
小弟出学C语言:这题循环不会啦!求1- 1/3 + 1/5 - 1/7 +1/9 -……1/N直到最后一项的绝对指小于10的负4次方!~~
我自己写的
main()
{
int sum=0,i=1,t=1;
while(fabs(t)>=1E-4)
{sum+=t;
i+=2;
t=-(1/i);
}
printf("sun=%d",sum);
}
可写到这就变成全减运算啦!~~而题目是做减再做加然后直到1/n!~
[[it] 本帖最后由 sssszhaojun 于 2008-4-22 21:28 编辑 [/it]]
搜索更多相关的解决方案:
讲解
----------------解决方案--------------------------------------------------------
程序代码:
#include<stdio.h>
int main(void)
{
float sum = 0.0f, x=1;
int i;
for(i=1;i<10000;++i)
{
x=i&1? 2*i-1 : 1-2*i;
sum += 1.0/x;
}
printf("%.3f",sum);
return 0;
}
----------------解决方案--------------------------------------------------------
回复 2# 的帖子
我还没学FOR语句啊 !~~能用WHILE讲解下吗 ----------------解决方案--------------------------------------------------------
只是格式不一样.
程序代码:
#include<stdio.h>
int main(void)
{
float sum = 0.0f, x=1;
int i=1;
while(i<10000)
{
x=i&1? 2*i-1 : 1-2*i;
sum += 1.0/x;
++i;
}
printf("%.3f",sum);
return 0;
}
----------------解决方案--------------------------------------------------------
你可以增加一个变量,初始值为-1,然后每次循环的时候乘以-1,计算每一项的时候,乘以这个变量,就能实现每一项正负交替了