C语言关于声明变量的问题?

一个小程序,就是不懂为什么i要用浮点型来声明,而整型会出现数值错误?i不就是整数吗?

整数和整数的比值是个整数 也就是说i>1的情况下,1/i始终为0
你把1/i 这个改成1.0/i 就可以用int 声明i了 :

s=s+1.0/i;
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-08-04
int i;i就是整型
float i;i就是浮点型
第2个回答  2012-08-05
这个是隐转换 当你在 s = s+1/i 的时候系统自动会把你的i穿成浮点型
这种类似的隐式转换 很别扭 也挺不容易找出错误

你可以看点 C专家编程 我记得那本书上好像有写
第3个回答  2012-08-05
浮点型是有小数点的,而整形是整数形式的。声明 i 时要类型转换。
第4个回答  2012-08-05
你的s是浮点型的s=s+1.0/i,如果i是整形的就不行了
第5个回答  2012-08-06
VS 不是有单步调试吗,你可以一步一步的调试,看看2两 i 的区别,int i 的值 与 float i不同。
相似回答
大家正在搜