| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 979 人关注过本帖
标题:弱弱的问一下
只看楼主 加入收藏
小小熊宝宝
Rank: 2
来 自:江苏无锡
等 级:论坛游民
威 望:2
帖 子:183
专家分:38
注 册:2008-8-12
结帖率:100%
收藏
 问题点数:0 回复次数:7 
弱弱的问一下
#include<stdio.h>
void main()
{
    float a,b,c,max;
    printf("请输入三个整数,用逗号隔开\n");
    scanf("%f,%f,%f",&a,&b,&c);
    if(a<b)
        if(b<c)
            printf("最大数为:%f\n",c);
        else
            printf("最大数为:%f\n",b);
        else if(a<c)
            printf("最大数为:%f\n",c);
        else
            printf("最大数为:%f\n",a);
}



用VC++ 6.0 运行后是这样的


请输入三个数,用逗号隔开
123.23,1231.32,1231.33
最大数为:1231.329956


请问为什么会是1231.329956呢?
搜索更多相关主题的帖子: max 整数 逗号 float main 
2008-08-16 19:38
flyue
Rank: 10Rank: 10Rank: 10
来 自:江南西道
等 级:贵宾
威 望:19
帖 子:3465
专家分:1563
注 册:2006-6-20
收藏
得分:0 
float型是有精度的,后面多出来的数字是其自己添加的

天之道,损有余而补不足.人之道则不然,损不足以奉有余.孰能有余以奉天下,唯有道者.
2008-08-16 20:02
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
收藏
得分:0 
解决办法一:赋初值。

办法二:输出时采用 %.2f 的格式。

我就会这么两种。
2008-08-16 20:08
flyue
Rank: 10Rank: 10Rank: 10
来 自:江南西道
等 级:贵宾
威 望:19
帖 子:3465
专家分:1563
注 册:2006-6-20
收藏
得分:0 
float a = 0.0f,b = 0.0f,c = 0.0f,max = 0.0f;
不要忘记后面的“f”

天之道,损有余而补不足.人之道则不然,损不足以奉有余.孰能有余以奉天下,唯有道者.
2008-08-16 20:18
小小熊宝宝
Rank: 2
来 自:江苏无锡
等 级:论坛游民
威 望:2
帖 子:183
专家分:38
注 册:2008-8-12
收藏
得分:0 
3Q~~~~~~~~~~~~
2008-08-16 20:21
苏洵
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2008-8-10
收藏
得分:0 
回复 1# 小小熊宝宝 的帖子
如果使用%f格式转换符时没有指定精度,那么就会使用默认精度6。
2008-08-17 10:58
苏洵
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2008-8-10
收藏
得分:0 
回复 4# flyue 的帖子
弱弱地问一下
为什么要在后面加f呢?
还有,为什么赋初值为0.0f输出的时候就会按预想结果输入呢?
谢谢啦o(∩_∩)o
2008-08-17 11:00
flyue
Rank: 10Rank: 10Rank: 10
来 自:江南西道
等 级:贵宾
威 望:19
帖 子:3465
专家分:1563
注 册:2006-6-20
收藏
得分:0 
看——书!

天之道,损有余而补不足.人之道则不然,损不足以奉有余.孰能有余以奉天下,唯有道者.
2008-08-17 11:50
快速回复:弱弱的问一下
数据加载中...
 
   



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

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