|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 为什么 c 的值为 1 ???
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
725
人关注过本帖
标题:
为什么 c 的值为 1 ???
只看楼主
加入收藏
胖嘟嘟
等 级:
新手上路
帖 子:6
专家分:4
注 册:2014-4-18
结帖率:
100%
楼主
收藏
已结贴
√
问题点数:20 回复次数:10
为什么 c 的值为 1 ???
#include<stdio.h>
void main()
{
int a=8,b=5,c;
c=a/b+0.4;
printf("%d\n",c);
}
2014-05-06 22:12
举报帖子
使用道具
赠送鲜花
破灬王
等 级:
论坛游民
帖 子:12
专家分:18
注 册:2014-1-17
第
2
楼
收藏
得分:3
8除以5等于1.6 1.6+0.4=2
在C语言上8除以5等于1
所以你懂的
2014-05-06 22:24
举报帖子
使用道具
赠送鲜花
胖嘟嘟
等 级:
新手上路
帖 子:6
专家分:4
注 册:2014-4-18
第
3
楼
收藏
得分:0
回复 2 楼 破灬王
我就是想问小数为什么不算了??
2014-05-06 22:27
举报帖子
使用道具
赠送鲜花
向1505057584
等 级:
论坛游民
帖 子:7
专家分:25
注 册:2014-5-6
第
4
楼
收藏
得分:3
因为a/b,两个数都是int型,所以结果也是int型,直接把小数舍去,C语言没有进位说法
2014-05-06 22:50
举报帖子
使用道具
赠送鲜花
寂__痴
等 级:
论坛游民
帖 子:34
专家分:23
注 册:2014-4-25
第
5
楼
收藏
得分:3
C语言不像一般数学上的四则运算,可以自由把握小数点。C语言有严格的类型规则。int型(整数运算) float型 (有小数点的运算)等。计算机会自动按照你所定义的类型来运算。float型赋值给int型,就会先对float型取整再把整数部分赋值给变量;int型赋值给float型,就会数值不变,然后把数值以浮点数形式赋值给变量。
C语言之路,慢慢走,慢慢领悟,才是硬道理!
2014-05-07 00:07
举报帖子
使用道具
赠送鲜花
蝌蚪变青蛙
等 级:
新手上路
帖 子:12
专家分:5
注 册:2014-4-26
第
6
楼
收藏
得分:3
/ 运算符的结果是根据被除数和除数的类型来决定的。
如果被除数和除数都是int类型,则商是int类型,如果有小数部分,截取。例:3/2 = 1 //而不是1.5
如果被除数和除数有一个或两个都是浮点型(float/double),则商是浮点型。
楼主看书仔细点。。。
2014-05-07 00:37
举报帖子
使用道具
赠送鲜花
buddy_zhang
等 级:
论坛游民
帖 子:33
专家分:24
注 册:2014-5-7
第
7
楼
收藏
得分:3
c=a/b+0.4;
(1)a和b 都是int型,a/b的值是1,而是不是1.6
(2)然后加0.4的时候发生类型提升变成double,此时是1.0+0.4=1.4。
(3)然后是赋值语句,由于左值是int,所以右值被提升为int型,所以c的值为1。
printf("%d\n",c);
//printf的%d是int型,c的类型也必须提升为int型,所以最后输出值为1。
2014-05-07 11:00
举报帖子
使用道具
赠送鲜花
tof
等 级:
新手上路
帖 子:4
专家分:3
注 册:2014-5-7
第
8
楼
收藏
得分:3
比我还新的新手.
2014-05-07 11:09
举报帖子
使用道具
赠送鲜花
vvvcuu
等 级:
贵宾
威 望:
12
帖 子:353
专家分:1253
注 册:2014-4-22
第
9
楼
收藏
得分:3
c是整型变量, 在计算b/a的时候是直接得到1, 而不是得到1.6.
C对于这方面的运算是直接舍去,而不是四舍五入.
代码测试环境: WinXP+C-Free5.0.
2014-05-07 20:28
举报帖子
使用道具
赠送鲜花
一心向佛
等 级:
新手上路
帖 子:3
专家分:5
注 册:2014-5-4
第
10
楼
收藏
得分:3
7楼解释很详细
2014-05-07 20:40
举报帖子
使用道具
赠送鲜花
11
1/2页
1
2
快速回复:
为什么 c 的值为 1 ???
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.036923 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved