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,執行步驟(5),否則執行步驟(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);}