2006年9月全國等級考試三級c語言上機題庫(二十一)
題目21(無憂id 53 迭代方法求方程題) 下列程序prog1.c的功能是:利用以下所示的簡單迭代方法求方程:cos(x)-x=0的一個實根。xn+1=cos(xn)迭代步驟如下:(1)取x1初值為0.0;(2)x0=x1,把x1的值賦給x0;(3)x1=cos(x0),求出一個新的x1;(4)若x0-x1的絕對值小于0.000001,執(zhí)行步驟(5),否則執(zhí)行步驟(2);(5)所求x1就是方程cos(x)-x=0的一個實根,作為函數值返回。請編寫函數countvalue()實現程序的要求,最后調用函數writedat()把結果輸出到文件out17.dat中。部分源程序已給出。請勿改動主函數main()和輸出數據函數writedat()的內容。#include <conio.h>#include <math.h>#include <stdio.h> float countvalue(){ double x0,x1;x1=0.0;do{ x0=x1;x1=cos(x0);}while(fabs(x0-x1)>=0.000001);return x1;} main(){clrscr();printf("實根=%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);}