c语言求素数哪里错了,为什么显示错误是conversion from ✀double✀ to ✀int✀, possible loss of data

2024-12-30 02:19:51
推荐回答(4个)
回答1:

k=sqrt(m);主要是针对这句话说的。
m经由sqrt函数开方所得应该是double类型数据,却用int类型的k接着。
错误的意思就是double转成int可能会丢失数据精度。
可以运行,如果你想避免这个错误的话,把k定义成double类型就可以了。

回答2:

这个有两个问题,一个是查看一下math.h中的形参类型和返回值类型,都是double型的,至于类型转换中的精度损失问题,自己去找找浮点数的存储,所以m,k定义有问题,还有个,这个应该是警告信息,不是错误信息吧,下次记得把错误的行号的信息表上,好找

回答3:

应该没有出错,是警告double型付给int型k,会造成精度损失

回答4:

for(i=2;i<=k;i )