问答题

请编写函数findRoot(),其功能是:利用以下所示的简单迭代方法求方程cos(x)-x=0的一个实根。
迭代步骤如下:
(1)取x1初值为0.0。
(2)把x1的值赋给x0,即x0=x1
(3)求出一个新的x1,即x1=cos(x0)。
(4)若x0-x1的绝对值小于0.000001,执行步骤(5),否则执行步骤(2)。
(5)所求x1就是方程cos(x)-x=0的一个实根,作为函数值返回。
函数writeData()负责把结果输出到OUT.DAT文件中。
注意:部分源程序已给出。
请勿改动主函数main()和写函数writeData()的内容。
试题程序:
#include<stdlib.h>
#include<math.h>
#include<stdio.h>
void writeData();
float findRoot()

float x1=0.00,x0;
int i=0;
do


x0=x1;//将x1的值赋给x0
x1=cos(x0);//得到一个新的x1的值

while(fabs(x1-x0)>0.000001);//如果
误差比所要求的值大,则继续循环
return x1;

void main()

system("CLS");
printf("root=%f",findRoot());
writeData();

void writeData()

FILE*wf;
wf=fopen("OUT.DAT","w");
fprintf(wf,"%f",findRoot()):
fclose(wf);

【参考答案】

float findRoot()
{
float x1=0.00,x0;
int i=0;......

(↓↓↓ 点击下方‘点击查看答案’看完整答案、解析 ↓↓↓)