猿问
下载APP

这是一道近似计算题目,不知道那个地方错了。

https://img2.mukewang.com/5b90e269000172f905380088.jpg

题目是这样,我的代码是这样:

{

    int i;

    double b=1,a;


    for(a=1,i=0; (1.0/a)>=1e-6; i++)

    {

        b+=(1/a)*(-1)*i;

        a=a+2;

   printf("%f   %f\n",b, 1.0/a);


    }

    printf("%lf",b);

    return 0;

}

https://img2.mukewang.com/5b90e49700012b7f06770442.jpg


慕用7336610
浏览 1761回答 7
7回答

凉城_5

b+=(1/a)*(-1)*i; // 这里不对,正负转换未成功,不应该(-1)*i,应该写成(-1)的次幂

慕莱坞8333017

3986208552328656330772187420770952219531195523100710064955289542176629095521086374418541973185408441654177431097433196535441819663650082074483397944080984298744863901074154307195527650054417621879877594308095504299553096066414006555128832889842110751198427431740084218623106365297530879542087330674110953387421976209883398539

慕莱坞8333017

6751271846021727751655317942907751345396376223704534283332897803816461664248974834278002503416778651721724873472078609840528556405120721228056518710853479433296231732653978624275232750599738942895996180738386401195615373821707201734283929701520341529163684702524075470755401764997785107511029769868196628831781994362060896092

AAnonymous

#include <cstdio> int main() {     double result = 0.0;     for (int i = 1, flag = 1; (1.0 / i) >= 1e-6; i+=2, flag *= -1) {         result += (1.0 / i) * flag;     }     printf("%f\n", result); }
打开App,查看更多内容
随时随地看视频慕课网APP
继续浏览精彩内容
慕课网APP
程序员的梦工厂
继续