| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 271 人关注过本帖
标题:新手求高手指教,简单的程序没找到错
只看楼主 加入收藏
韩学敏
Rank: 2
等 级:论坛游民
帖 子:52
专家分:26
注 册:2012-11-3
结帖率:82.35%
收藏
已结贴  问题点数:10 回复次数:5 
新手求高手指教,简单的程序没找到错
#include<stdio.h>
int main(void)
{
    double eps,denominator,s;
    int i,flag;
    s=0;
    flag=1;
    denominator=1;
    printf("input eps:");
    scanf("%e",&eps);
    while(denominator>eps)
    {
        s=s+flag*denominator;
        flag=-flag;
        i=i+3;
        denominator=1.0/i;
    }
    printf("s=%.6f",s);
    return 0;
}
这个是计算s=1-1/4+1/7-1/10.....直到最后一项小于输入的eps的值,输入eps为1E-4,却没有结果输出来。。。
求高手指点,有没有比较省劲的编程,求解。。。
搜索更多相关主题的帖子: eps return 
2012-11-04 23:00
kyt511
Rank: 1
等 级:新手上路
帖 子:3
专家分:8
注 册:2012-11-4
收藏
得分:3 
最后输出语句改成printf(“s=%.6lf”,s);试试
2012-11-04 23:49
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
收藏
得分:3 
以下是引用kyt511在2012-11-4 23:49:55的发言:

最后输出语句改成printf(“s=%.6lf”,s);试试
应该可以

认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2012-11-05 09:19
xn9466462
Rank: 1
等 级:新手上路
帖 子:1
专家分:2
注 册:2012-11-5
收藏
得分:3 
把double换成float
2012-11-05 10:10
一个孩子
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:356
专家分:954
注 册:2012-10-1
收藏
得分:3 
#include<stdio.h>
int main(void)
{
    double eps,denominator,s;
    int i,flag;
    s=0;
    flag=1;
    denominator=1;
    i=1;
    printf("input eps:");
    scanf("%lf",&eps);
    while(denominator>eps)
    {
        s=s+flag*denominator;
        flag=-flag;
        i=i+3;
        denominator=1.0/i;
    }
    printf("s=%e\n",s);
    return 0;
}
你的i没有初始化,还有就是输入的时候改成%lf就行了,输出的时候最好用s=%g,这个会自动调整的,我这里没用,你可以试下

重要的不是结果,是求一个结果的过程,哪怕千难万难,当你有想要的结果时,你已走的很远
2012-11-05 10:28
韩学敏
Rank: 2
等 级:论坛游民
帖 子:52
专家分:26
注 册:2012-11-3
收藏
得分:0 
回复 2楼 kyt511
输出的结果是1.000000
2012-11-05 23:24
快速回复:新手求高手指教,简单的程序没找到错
数据加载中...
 
   



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

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