| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 514 人关注过本帖
标题:定义变量
只看楼主 加入收藏
tangname
Rank: 1
等 级:新手上路
帖 子:68
专家分:0
注 册:2008-11-12
收藏
 问题点数:0 回复次数:8 
定义变量
#include <cstdio>
int main()
{
    float i,a=2,b=1,t,p;     //为什么定义变量全为浮点型
    for(i=1;i<=20;i++)
    {
        p=p+a/b;
        t=a;a=a+b;b=t;
    }
    printf("%9.6f\n",p);
    return 0;
}


如果只是把变量 p 定义为float 型  输出结果是错误的
搜索更多相关主题的帖子: 变量 定义 
2008-11-23 18:15
dillon
Rank: 1
等 级:新手上路
威 望:2
帖 子:183
专家分:0
注 册:2008-10-6
收藏
得分:0 
不同类型变量不能直接进行运算
2008-11-23 18:36
tangname
Rank: 1
等 级:新手上路
帖 子:68
专家分:0
注 册:2008-11-12
收藏
得分:0 
可我在 潭书上看到的是: 整型 浮点型 字符型 数据间可以混合运算,各类型转换是由系统自动进行的
2008-11-23 19:09
tangname
Rank: 1
等 级:新手上路
帖 子:68
专家分:0
注 册:2008-11-12
收藏
得分:0 
潭第三版 P54 P55
2008-11-23 19:10
dillon
Rank: 1
等 级:新手上路
威 望:2
帖 子:183
专家分:0
注 册:2008-10-6
收藏
得分:0 
我的错。
但是你的P没赋初值,使得p=p+a/b;运算无效,输出结果错误。
如果你想使p有小数的话就都定义为float。
2008-11-23 19:36
tangname
Rank: 1
等 级:新手上路
帖 子:68
专家分:0
注 册:2008-11-12
收藏
得分:0 
float i,a=2,b=1,t,p=0;  //这样定义的 答案是 32.660259 是准确答案

int i,a=2,b=1,t;
float p=0;          //这样定义的话  答案却是 21.000000
2008-11-23 20:41
dillon
Rank: 1
等 级:新手上路
威 望:2
帖 子:183
专家分:0
注 册:2008-10-6
收藏
得分:0 
你将i,a,b,t定义为整型 在运算过程中例如a=3/2=1累加起来就造成误差了。
2008-11-23 20:55
zqy110007
Rank: 3Rank: 3
来 自:外太空
等 级:论坛游民
威 望:6
帖 子:1493
专家分:82
注 册:2008-11-19
收藏
得分:0 
程序代码:
#include <cstdio>
int main()
{
    float i,a=2,b=1,t,p;     //为什么定义变量全为浮点型
    for(i=1;i<=20;i++) 
    {
        p=p+a/b;
        t=a;a=a+b;b=t;
    }
    printf("%9.6f\n",p);
    return 0;
}
p的话是肯定不能够改的,因为下面输出使用的%f,如果你把%f改成%d的话就可以把p改成int了..还有一个..
你的i因该本来就是int型的,i在你的程序里只是循环的变量,应该使用int

最后,float和int之间,一般来说有除法运算就会出错!

每个人都是蛤蟆,只是井的大小不同罢了.
沙石下的泉水,挖得越深,泉水越清.
2008-11-23 21:16
tangname
Rank: 1
等 级:新手上路
帖 子:68
专家分:0
注 册:2008-11-12
收藏
得分:0 
  明白了  感谢楼上两位
2008-11-23 21:22
快速回复:定义变量
数据加载中...
 
   



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

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