搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 一个简单的问题 高手帮帮忙
标题:
一个简单的问题 高手帮帮忙
只看楼主
zzgzzg00
等 级:
黑侠
威 望:
2
帖 子:388
专家分:627
注 册:2010-8-2
结帖率:
100%
楼主
已结贴
√
问题点数:5 回复次数:9
一个简单的问题 高手帮帮忙
输入
main()
{
long y;
y=200*200;
printf("%ld",y);
}
为什么输出的不是40000啊,而是-25536,对于更大的数值计算,该用哪个类型的命令啊 ,谢谢
搜索更多相关主题的帖子:
long
2010-08-17 10:19
苗伊
该用户已被删除
第
2
楼
得分:0
提示:
作者被禁止或删除 内容自动屏蔽
2010-08-17 10:23
zzgzzg00
等 级:
黑侠
威 望:
2
帖 子:388
专家分:627
注 册:2010-8-2
第
3
楼
得分:0
呵呵,还是不对啊,是不是系统默认200是int型,所以计算结果也自动转换到int型了啊?
粗心是大敌
2010-08-17 10:33
zzgzzg00
等 级:
黑侠
威 望:
2
帖 子:388
专家分:627
注 册:2010-8-2
第
4
楼
得分:0
弄明白了,不知对不对,对于较大的计算,比如y=x*x,x和y都应设为long型,假如x值较小而设为int型,输出的y会默认为int型。
粗心是大敌
2010-08-17 10:40
钟名声
等 级:
新手上路
帖 子:1
专家分:5
注 册:2010-8-12
第
5
楼
得分:5
因为c语言默认为有符型,输出数的范围是-32767到32768,你只要改成printf("%u",y);就可以了。
2010-08-17 10:48
zzgzzg00
等 级:
黑侠
威 望:
2
帖 子:388
专家分:627
注 册:2010-8-2
第
6
楼
得分:0
谢谢 基础没好好看 哈
粗心是大敌
2010-08-17 11:06
maqingqin
等 级:
新手上路
帖 子:23
专家分:4
注 册:2010-2-1
第
7
楼
得分:0
就左不就右,就长不就短。你们没听过么。
2010-08-17 11:09
liyinc
等 级:
新手上路
帖 子:3
专家分:1
注 册:2010-8-19
第
8
楼
得分:0
我也同意第3楼的意见...我试了下..改成下面这样结果就对:
main()
{
long y;
long i=200;
y=i*i;
printf("%ld",y);
}
2010-08-19 17:11
御坂美琴
来 自:魔術の禁書目錄
等 级:
小飞侠
威 望:
9
帖 子:952
专家分:2929
注 册:2010-8-18
第
9
楼
得分:0
改y=200*(long)200;
御坂御坂笑着解释
永远为正义而奋斗,锄强扶弱的Level 5 超能力者
とある魔術の禁書目錄インデックス__御み坂さか美み琴こと
http://bbs.bccn.net/space.php?action=threads&uid=483997
2010-08-19 17:19
zclaile
等 级:
新手上路
帖 子:15
专家分:8
注 册:2010-8-20
第
10
楼
得分:0
认真学习
2010-08-20 12:35
10
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-315931-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 2.083289 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved