不同数据类型运算不是自动转化为double,这句话是对的,可是你把这句话教条地扩大化了。对于t=t- 1/i1是整型,i是整型,1/i是整型的计算,结果为整型;t- 1/i,1/i是整型,t是浮点型,t- 1/i是浮点型,1/i自动转换为浮点型,不过,由于前一步整型计算,所以1/i已经不是应该的值了。
在c语言中整数除以整数得到还是整数,比如 1 / 2 结果是 0.1.0 / 2 结果是 0.5, 因为1.0 是浮点型, 做除法运算时进行自动类型转换,2也转换穿浮点数再计算