注册 登录
编程论坛 C++教室

新手求助,为什么这个程序在vs2010上运行不了

Liu3420175 发布于 2013-03-24 10:50, 629 次点击
上午看书编的一个程序,题目如下:
S=1+(1/5)+(1/9)+...+(1/(4n+1))直到最后一项绝对值小于0.0000001为止。
下面是我写的程序,在VS2010上运行不了,上面说生成成功,但什么结果也没有,我是菜鸟,求高人指点,谢谢!
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
    double s1=0;
    int i;
    double a=1.0;
while(a>1e-7)
    for(i=0;;i++)
    {
            a=1/(4*i+1);
            s1=s1+a;
    }
    cout <<"s1="<<setiosflags(ios::fixed)<<setprecision(6)<<s1<<endl;
    return 0;
}
3 回复
#2
wp2319572013-03-24 11:04
程序代码:
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
    double s1=0.0;
    int i=0;
    double a=1.0;
    while(a>1e-6)
    {      
        a=(double)1.0/(double)(4*i+1);     //强制转换
        s1=s1+a;
        i++;
    }
    cout <<"s1="<<setiosflags(ios::fixed)<<setprecision(6)<<s1<<endl;
    return 0;
}
#3
Liu34201752013-03-24 11:09
谢啦,可以了,没经验,不知道怎么用强制转换
#4
wp2319572013-03-24 11:10
a=1/(4*i+1);
这个=后面是整型  第二次循环时就=0 退出循环了
1