| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付买域名,送MP3、MP4
高端软件开发 = 年薪十万不是梦赛孚耐:软件保护加密专家身份认证令牌USB KEY买空间,免费送域名(厦门中资源)
共有 289 人关注过本帖
标题:弱弱的问一下
收藏  订阅  推荐  打印 
小小熊宝宝
Rank: 2
来自:江苏无锡
等级:注册会员
威望:2
帖子:145
积分:1754
注册:2008-8-12
弱弱的问一下

#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-8-16 19:38
flyue
Rank: 6Rank: 6
等级:金牌会员
威望:6
帖子:1721
积分:17882
注册:2006-6-20

float型是有精度的,后面多出来的数字是其自己添加的

大家一起来编程吧!
2008-8-16 20:02
广陵绝唱
Rank: 4
等级:高级会员
威望:1
帖子:832
积分:9811
注册:2008-2-15

解决办法一:赋初值。

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

我就会这么两种。
2008-8-16 20:08
flyue
Rank: 6Rank: 6
等级:金牌会员
威望:6
帖子:1721
积分:17882
注册:2006-6-20

float a = 0.0f,b = 0.0f,c = 0.0f,max = 0.0f;
不要忘记后面的“f”

大家一起来编程吧!
2008-8-16 20:18
小小熊宝宝
Rank: 2
来自:江苏无锡
等级:注册会员
威望:2
帖子:145
积分:1754
注册:2008-8-12

3Q~~~~~~~~~~~~
2008-8-16 20:21
苏洵
Rank: 1
等级:新手上路
帖子:13
积分:240
注册:2008-8-10
回复 1# 小小熊宝宝 的帖子

如果使用%f格式转换符时没有指定精度,那么就会使用默认精度6。
2008-8-17 10:58
苏洵
Rank: 1
等级:新手上路
帖子:13
积分:240
注册:2008-8-10
回复 4# flyue 的帖子

弱弱地问一下
为什么要在后面加f呢?
还有,为什么赋初值为0.0f输出的时候就会按预想结果输入呢?
谢谢啦o(∩_∩)o
2008-8-17 11:00
flyue
Rank: 6Rank: 6
等级:金牌会员
威望:6
帖子:1721
积分:17882
注册:2006-6-20

看——书!

大家一起来编程吧!
2008-8-17 11:50
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.051654 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved