| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 593 人关注过本帖
标题:麻烦大家帮忙查一下错!
取消只看楼主 加入收藏
hecate3835
Rank: 1
等 级:新手上路
帖 子:15
专家分:4
注 册:2012-4-1
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:7 
麻烦大家帮忙查一下错!
#include "stdio.h"
#include "math.h"
main()
{
    int i=1,j=1;
    float sum=0;
    while(fabs(j/i)>1e-6)        
    {
        sum+=1.0*j/i;        /*  j/i的结果是整型,用1.0*j/i  将数据转换成浮点型   */
        i++;
        j=-j;
    }
    printf("%f\n",sum);
    return  0;
}

运行的结果是  1.000000  
找不到错在哪里!
请大家帮忙看一下,谢谢!
搜索更多相关主题的帖子: 数据 include return 
2012-04-01 20:34
hecate3835
Rank: 1
等 级:新手上路
帖 子:15
专家分:4
注 册:2012-4-1
收藏
得分:0 
#include "stdio.h"
#include "math.h"
main()
{
    int i=1,j=1;
    float sum=0,k=1.0;
    while(fabs(k)>1e-6)
    {
        k=1.0*j/i;
        sum+=k;
        i++;
        j=-j;
    }
    printf("%f\n",sum);
    return  0;
}
我把程序改成这样,结果还是 1.000000  ,还是不可以!

[ 本帖最后由 hecate3835 于 2012-4-1 20:59 编辑 ]
2012-04-01 20:57
hecate3835
Rank: 1
等 级:新手上路
帖 子:15
专家分:4
注 册:2012-4-1
收藏
得分:0 
把 i j 定义成浮点型就可以输出正确的结果 , 但  k=1.0*j/i  让我很纠结 ,能用整型的我就不用浮点型。
2012-04-01 21:09
hecate3835
Rank: 1
等 级:新手上路
帖 子:15
专家分:4
注 册:2012-4-1
收藏
得分:0 
回复 6楼 hecate3835
不对
循环可以进行

[ 本帖最后由 hecate3835 于 2012-4-1 21:19 编辑 ]
2012-04-01 21:18
hecate3835
Rank: 1
等 级:新手上路
帖 子:15
专家分:4
注 册:2012-4-1
收藏
得分:0 
回复 5楼 ygwlovech
你好,你的代码我运行了一下 ,当fabs(k)>1e-6 时什么都不显示,而改成 fabs(k)>1e-3  就出现结果啦 。郁闷!
2012-04-01 21:27
hecate3835
Rank: 1
等 级:新手上路
帖 子:15
专家分:4
注 册:2012-4-1
收藏
得分:0 
#include "stdio.h"
#include "math.h"
main()
{
    float  i,j,k,sum;
    i=1;j=1;k=1;sum=0;
    while(fabs(k)>1e-6)
    {
        sum+=j/i;
        i++;
        j=-j;
        k=j/i;
    }
    printf("%f\n",sum);
    return  0;
}
这个应该可以,结果不知道对错  0.693138



一下是我原来的意思:
#include "stdio.h"
#include "math.h"
main()
{
    int i=1,j=1;
    float sum=0,k=1;
    while(fabs(k)>1e-4)
    {
        sum+=1.0*j/i;
        i++;
        j=-j;
        k=1.0*j/i;
    }
    printf("%f\n",sum);
    return  0;
}
结果是 0.693139
#include "stdio.h"
#include "math.h"
main()
{
    int i=1,j=1;
    float sum=0,k=1;
    while(fabs(k)>1e-5)
    {
        sum+=1.0*j/i;
        i++;
        j=-j;
        k=1.0*j/i;
    }
    printf("%f\n",sum);
    return  0;
}
没有结果,出错啦! 这是为什么呢????

[ 本帖最后由 hecate3835 于 2012-4-1 22:37 编辑 ]
2012-04-01 21:55
hecate3835
Rank: 1
等 级:新手上路
帖 子:15
专家分:4
注 册:2012-4-1
收藏
得分:0 
回复 11楼 TonyDeng
之所以使用 1.0*j/i  我觉得整型变量比浮点型更节省内存空间 !
2012-04-02 12:27
hecate3835
Rank: 1
等 级:新手上路
帖 子:15
专家分:4
注 册:2012-4-1
收藏
得分:0 
回复 13楼 TonyDeng
首先谢谢你的意见!编程方面我才开始,数据结构,编译原理等等这些我还没学,你说的那些过段时间我就会懂的。
2012-04-02 21:36
快速回复:麻烦大家帮忙查一下错!
数据加载中...
 
   



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

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