全國計(jì)算機(jī)等級(jí)考試二級(jí)C語言上機(jī)題21

字號(hào):

☆題目21下列程序prog1.c的功能是:利用以下所示的簡單迭代方法求方程:cos(x)-x=0的一個(gè)實(shí)根。
     xn+1=cos(xn)
     迭代步驟如下:
    (1)取x1初值為0.0;
    (2)x0=x1,把x1的值賦給x0;
    (3)x1=cos(x0),求出一個(gè)新的x1;
    (4)若x0-x1的絕對(duì)值小于0.000001,執(zhí)行步驟(5),否則執(zhí)行步驟(2);
    (5)所求x1就是方程cos(x)-x=0的一個(gè)實(shí)根,作為函數(shù)值返回。
     請(qǐng)編寫函數(shù)countvalue()實(shí)現(xiàn)程序的要求,最后調(diào)用函數(shù)writedat()把結(jié)果輸出到文件out17.dat中。
     部分源程序已給出。
     請(qǐng)勿改動(dòng)主函數(shù)main()和輸出數(shù)據(jù)函數(shù)writedat()的內(nèi)容。
    #include
    #include
    #include
    
    float countvalue()
    { float x0,x1;
     x1=0.0;
     do{ x0=x1;
     x1=cos(x0);
     }while(fabs(x0-x1)>=0.000001);
     return x1;
    }
    
    main()
    {
     clrscr();
     printf("實(shí)根=%f\n",countvalue());
     printf("%f\n",cos(countvalue())-countvalue());
     writedat();
    }
    
    writedat()
    {
     file *wf;
    
     wf=fopen("out17.dat","w");
     fprintf(wf,"%f\n",countvalue());
     fclose(wf);
    }