C语言运行不出结果,不知道为什么
#include<stdio.h>intmain(void){doubles,i=1,n,eps=0.001;for(s=0;;i++){n=i*(i+1);s=s+1/...
#include <stdio.h>
int main(void) {
double s,i=1,n,eps=0.001;
for(s=0;;i++)
{
n=i*(i+1);
s=s+1/n;
if(n<=eps) break;
}
printf("s=%lf\n",s);
return 0;
}
用vc6.0运行后就只有一个光标在闪,但就是没有结果显示 展开
int main(void) {
double s,i=1,n,eps=0.001;
for(s=0;;i++)
{
n=i*(i+1);
s=s+1/n;
if(n<=eps) break;
}
printf("s=%lf\n",s);
return 0;
}
用vc6.0运行后就只有一个光标在闪,但就是没有结果显示 展开
展开全部
//程序进入死循环了,所以得不到结果,具体分析如下
#include <stdio.h>
int main(void) {
double s,i=1,n,eps=0.001;
for(s=0;;i++)
{
n=i*(i+1); //n值是个永远大于1的值
printf("n=%lf\n",n);
s=s+1/n;
if(n<=eps) break; //永远无法达到这个条件,所以程序陷入死循环
}
printf("s=%lf\n",s);
return 0;
}
#include <stdio.h>
int main(void) {
double s,i=1,n,eps=0.001;
for(s=0;;i++)
{
n=i*(i+1); //n值是个永远大于1的值
printf("n=%lf\n",n);
s=s+1/n;
if(n<=eps) break; //永远无法达到这个条件,所以程序陷入死循环
}
printf("s=%lf\n",s);
return 0;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-10-26
展开全部
我想你可能在确定小数的精度,循环的判断条件应该是”1/n“小于等于“eps”
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
i是整数,n=i*(i+1);怎么可能小于eps=0.001。
追问
可是已经定义了i是double型了啊,可以详细给我讲下吗,我是初学者
追答
i初始定义是1,i*(i+1)怎么可能小于1呢,更别说小于eps了,你在循环里加入一个输出,输出n,你就可以看一下n的值了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询