| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2589 人关注过本帖
标题:为什么输出的是整数不是小数呢?小白求教!
只看楼主 加入收藏
ws2016
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2016-8-2
结帖率:0
收藏
已结贴  问题点数:20 回复次数:7 
为什么输出的是整数不是小数呢?小白求教!
#include<stdio.h>
main()
{
 int sum;
 float avg;
 int a=3;
 int b=4;
 sum=a+b;
 avg=sum/2;
 printf("output sum=%d\n",sum);
 printf("output avg=%f\n",avg);
}
2016-08-14 01:47
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10551
专家分:42996
注 册:2014-5-20
收藏
得分:4 
avg=(float)sum/2;
2016-08-14 05:31
w238390
Rank: 1
来 自:%E6%B4%9B%E6%9D%89%E7%9F%B6
等 级:新手上路
帖 子:29
专家分:7
注 册:2016-3-21
收藏
得分:4 
回复 楼主 ws2016
你好,我重新整理了你的代码。如果,sum是用float 定义。那么就是你想要的结果。所以,sum是整型变量相除的结果会自动取整数,不会显示小数部分。例:
#include<stdio.h>
main()
{

 float avg,sum;
 int a=3;
 int b=4;
 sum=a+b;
 avg=sum/2;
 printf("output sum=%d\n",sum);
 printf("output avg=%f\n",avg);
}

富强、民主、文明、和谐、自由、平等、
公正、法治,爱国、敬业、诚信、友善。
2016-08-14 09:57
ws2016
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2016-8-2
收藏
得分:0 
回复 4楼 w238390
你这样写sum输出为0啊!!!!!!!!!!!!!!!
2016-08-14 10:31
ws2016
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2016-8-2
收藏
得分:0 
回复 2楼 吹水佬
谢谢你的建议,我明白了。
2016-08-14 10:33
ws2016
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2016-8-2
收藏
得分:0 
回复 4楼 w238390
我知道你这样写有一个错误,我整理了一下,这样才是正确的。
#include<stdio.h>
main()
{
 float sum;
 float avg;
 int a=3;
 int b=4;
 sum=a+b;
 avg=sum/2;
 printf("sum=%f\n",sum);
 printf("avg=%f\n",avg);
}
2016-08-14 10:38
向洪林
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:重庆市奉节县
等 级:版主
威 望:9
帖 子:118
专家分:405
注 册:2015-3-10
收藏
得分:0 
两个整型数相加为什么要把sum当作小数输出了,要使平均数avg输出为小数只需要将分母后加一个0就OK,avg=sum/2.0

新手上路,望大家多多照顾,谢谢!
2016-08-14 23:35
corpsetsui
Rank: 1
等 级:新手上路
帖 子:15
专家分:4
注 册:2016-3-4
收藏
得分:4 
printf("output avg=%f\n",avg);改为%X.f,X为你想要小数点多少位,如%1.f就是小数点后一位
2016-08-14 23:39
快速回复:为什么输出的是整数不是小数呢?小白求教!
数据加载中...
 
   



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

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