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