| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 494 人关注过本帖
标题:请大家帮一下忙!!!
只看楼主 加入收藏
yesyesgirl
Rank: 1
等 级:新手上路
帖 子:43
专家分:9
注 册:2010-7-20
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:6 
请大家帮一下忙!!!
#include<stdio.h>
void main()
{
    int n,t;
    float a=2,b=1,s=0;
    for(n=1;n<=20;n++)
    {
        s=s+a/b;
        t=a;
        a=a+b;
        b=t;
    }
    printf("s=%9.6f\n",s);
}
这个程序是对的,运行结果为32.660259
但是如果我把第五行的a=2,b=1换为int
即int n,t,a=2,b=1;
  float s=0;则运行结果为21.000000。
为什么啊??总弄不清楚/这个运算符。
还有就是
#include<stdio.h>
void main()
{
    int n=3,t=2;
    printf("s=%f\n",n/t);
}
这个运行结果是s=0.000000,为什么啊!!!!
如果改为float n=3,t=2;运行结果才是1.500000。我糊涂了!!!


搜索更多相关主题的帖子: include 五行 
2010-08-07 21:41
langren2526
Rank: 2
等 级:论坛游民
帖 子:46
专家分:37
注 册:2010-3-12
收藏
得分:5 
“/ ” 对于 int 类型运算会舍去小数部分。
把 printf("s=%9.6f\n",s); 放到for循环里面看看每一步的运行结果,会有帮助。

第二个也是数据类型问题。 printf ("%s = %f", (float) n / t);

书是不是翻得快了点?

2010-08-08 07:14
远远攻击
Rank: 1
来 自:沈阳
等 级:新手上路
帖 子:18
专家分:7
注 册:2010-8-4
收藏
得分:2 
   
 #include<stdio.h>
void main()
{
    int n=3,t=2;
    printf("s=%f\n",n/t);
}
将%f改为%d就对了
不能用%f
3/2值是1
3/2.0的值是1.500000
2010-08-08 08:15
sunyh1999
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:14
帖 子:1178
专家分:3032
注 册:2009-5-17
收藏
得分:2 
应该为%d,不能用%f,因为整数型的对除不会有小数,自然用%f不对了

欢迎来到我的博客:http://blog..cn/noisunyuhong
2010-08-08 09:37
苗伊
该用户已被删除
收藏
得分:1 
提示: 作者被禁止或删除 内容自动屏蔽
2010-08-08 09:43
yesyesgirl
Rank: 1
等 级:新手上路
帖 子:43
专家分:9
注 册:2010-7-20
收藏
得分:0 
恩,有点懂了!!!
2010-08-08 12:36
yesyesgirl
Rank: 1
等 级:新手上路
帖 子:43
专家分:9
注 册:2010-7-20
收藏
得分:0 
对了,大家知道发送分贴是什么意思吗?还扣分啊!!
2010-08-08 12:38
快速回复:请大家帮一下忙!!!
数据加载中...
 
   



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

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