| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 644 人关注过本帖
标题:新手求助!!!!!下面这个程序有什么问题
取消只看楼主 加入收藏
Liu3420175
Rank: 2
来 自:湖北黄冈
等 级:论坛游民
帖 子:26
专家分:17
注 册:2013-3-24
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:3 
新手求助!!!!!下面这个程序有什么问题
求S=1/3+1/7+...+1/(4n+3)当最后一项小于0.000001时为止。这是我写的,为什么输出结果会是0.000000
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
    double b,s2;
    int j;
    b=1/3;
    s2=0.0;
    for(j=0;b>1e-7;j++)
    {
        b=(double)1.0/(double)(4*j+3);
        s2=s2+b;
    }
    cout <<"s2="<<setiosflags(ios::fixed)<<setprecision(6)<<s2<<endl;
    return 0;
}
搜索更多相关主题的帖子: include double 
2013-03-24 13:58
Liu3420175
Rank: 2
来 自:湖北黄冈
等 级:论坛游民
帖 子:26
专家分:17
注 册:2013-3-24
收藏
得分:0 
回复 2楼 yuccn
谢谢!刚接触这些,好多不懂,老犯错。。。

天下事在局外呐喊是无益的,必须躬亲入局才有改变的希望!
2013-03-24 16:51
Liu3420175
Rank: 2
来 自:湖北黄冈
等 级:论坛游民
帖 子:26
专家分:17
注 册:2013-3-24
收藏
得分:0 
回复 4楼 qunxingw
这个貌似不行啊,我用的是VS2010,如果不要b=1/3,它就说“warning C4700: 使用了未初始化的局部变量“b””,然后就运行失败,这是为何?以前也碰到过类似的问题,特别是在循环语句中

天下事在局外呐喊是无益的,必须躬亲入局才有改变的希望!
2013-03-24 16:56
Liu3420175
Rank: 2
来 自:湖北黄冈
等 级:论坛游民
帖 子:26
专家分:17
注 册:2013-3-24
收藏
得分:0 
回复 3楼 qunxingw
为什么用了for(j=0;(double)1/(4*j+3)>1e-7;j++)这句,就不需要对b进行初值化呢?也就是不要“b=1/3"或者”b=1.0/3"也可以编译成功得出结果。而用了for(j=0;b>1e-7;j++) 后,必需要加”b=1.0/3"这句,否则编译系统会说“warning C4700: 使用了未初始化的局部变量“b””,如果用b=1/3,就出现错误,仅仅就是"1"与”1.0“的·区别吗?

天下事在局外呐喊是无益的,必须躬亲入局才有改变的希望!
2013-03-24 17:13
快速回复:新手求助!!!!!下面这个程序有什么问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016180 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved