while循环和for循环计算奇数分之一前N项和结果不一致?

img
用上面的for循环就是对的但是用下面的while循环就不对了是为什么?
img
结果相差很小就很奇怪

scanf中的n和x代表的意义不一样

上面的代码有i和m两个变量,功能使用不一样,你用一个y打两份工自然会出问题