| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2031 人关注过本帖
标题:计算1-1/4+1/7-1/10…… 哪里错了?
只看楼主 加入收藏
kidundead
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2009-8-21
结帖率:100%
收藏
 问题点数:0 回复次数:8 
计算1-1/4+1/7-1/10…… 哪里错了?
程序代码:
#include "stdio.h"
#include "math.h"
void main()
{
    int flag=1,i=1;
    double item,eps,s=0;
    printf("请输入eps:");
    scanf("%f",&eps);
    while (1)
    {
        item=flag/i;
        s+=item;
        flag=-flag;
        i+=3;
        if (fabs(item)<eps)
            break;
    }
    printf("%.6f",s);
}
输入一个eps,当最后一项的绝对值小于eps(保留6位小数),输出s。哪里错了~~大大帮下忙
搜索更多相关主题的帖子: eps include double 
2009-10-25 17:11
m456m654
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:783
专家分:2806
注 册:2009-9-17
收藏
得分:0 
#include "stdio.h"
#include "math.h"
void main()
{
    int i=1;
    float item,eps,s=0,flag=1;
    printf("请输入eps:");
    scanf("%f",&eps);
    while (1)
    {
        item=flag/i; //否则两个int 相除得到0
        s+=item;
        flag=-1*flag;
        i+=3;
        if (fabs(item)<eps)
            break;
    }
    printf("%.6f",s);
}
2009-10-25 18:42
jiangwu10057
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:341
专家分:667
注 册:2009-3-25
收藏
得分:0 
他这个还是有问题不管eps为多少输出都是1
2009-10-25 19:11
xbuner
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2009-10-25
收藏
得分:0 
#include "stdio.h"  
#include "math.h"  
void main()  
{  
    int flag=1,i=1;  
    double item,eps,s=0;  
    printf("请输入eps:");  
    scanf("%lf",&eps);/* %f 改为%lf */
    while (1)  
    {  
        item=flag*1.0/i; /*flag与i是整形,item是浮点型,这要乘1.0变成浮点型*/
        s+=item;  
        flag=-flag;  
        i+=3;  
        if (fabs(item)<eps)  
            break;  
    }
    刚学C多多指教
2009-10-25 19:20
mgmt_asp
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:124
专家分:158
注 册:2009-7-26
收藏
得分:0 
水平有限- - 看不懂
提点疑问..

1-1/4+1/7-1/10…… 你这个是有规律的吗?比如分母是按+3逐级增大的

同时 符号也是有规律的吗?比如是奇数时符号是+ 是偶数时符号就是 -

另外你要输入的数如果是分母的话,他怎么会大于他的倒数呢(最多在为1时他们相等..)

如果不是分母的话,你要计算什么呢..
2009-10-25 20:29
kidundead
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2009-8-21
收藏
得分:0 
回复 2楼 m456m654
2楼方法可行,不过为什么我定义
flag=1,item,eps,s=0;
为double类型不行,而定义为float,可行
2009-10-25 21:19
changyilin
Rank: 2
等 级:论坛游民
帖 子:18
专家分:20
注 册:2009-9-4
收藏
得分:0 
2楼正解,请LZ好好看看数据类型转换部分
2009-10-25 21:36
wuse
Rank: 1
等 级:新手上路
帖 子:6
专家分:5
注 册:2009-10-25
收藏
得分:0 
item=flag/i; //好像有问题,类型转换应该有问题,
2009-10-25 21:57
spacecreater
Rank: 2
等 级:论坛游民
帖 子:3
专家分:20
注 册:2009-10-24
收藏
得分:0 
double在本质上来说是整型的,而float才是浮点型的,所以用double接收和传递的值是不可能有小数点的
2009-10-25 22:28
快速回复:计算1-1/4+1/7-1/10…… 哪里错了?
数据加载中...
 
   



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

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