有两个问题:
第一,从1/5!项开始,进行新的一次循环时,item用了上次循环时的值,而上次的item的正负和上次的s相同,所以和本次的s相反,这样一来,再和s相乘,新的item就肯定是负数了,不会一次正的一次负的。s其实完全可以不要,利用item的正负互换就可以了。
第二,在判断了abs(item)是否≥t后,在计算之前,又改变了item的值,这是违反要求的,所以,判断应该发生在改变item后,一旦出现,就停止循环或退出循环。
以此而言,循环体修改如下:
Do
i = i + 2
Item = -Item / i / (i - 1)
If Abs(Item) < t Then Exit Do
sum = sum + Item
Loop
你可以试试,在text1中分别输入0.1、0.2来计算前两项、前一项的计算结果。
1
C++语言,不太懂~~!!!