当前位置: 代码迷 >> C语言 >> [求助]做个简单的题目
  详细解决方案

[求助]做个简单的题目

热度:93   发布时间:2007-01-31 16:19:48.0
  恩 知道了  谢谢了
----------------解决方案--------------------------------------------------------
为什么加个long型就行了?希望楼上高手详细说下
----------------解决方案--------------------------------------------------------
俺简单解释一下:
语句 temp1 = age * age * age; 执行时,先计算等号右边的值,然后再赋值给左边的变量。当age的3次方值在32767以内时程序没有出错。当超出32767时,它发生了溢出,这时程序在逻辑上就存在错误。如果将age强制转换为长整形,那么age的3次方值就在正常取值范围内了。
顺便说一下,此程序最好将age设置为长整形,因为不到万不得已,尽量不要使用强制类型转换。

----------------解决方案--------------------------------------------------------
  相关解决方案