例题:编写函数fun,它的功能是:利用以下所示的简单迭代方法求方程cos(y)-y=0的一个实根。
yn+1=cos(yn)
迭代步骤如下:
(1)取y1初值为0.0。
(2)y0=y1,把y1的值赋给y0。
(3)y1=cos(y0),求出一个新的y1。
(4)若y0-y1的绝对值小于0.000001,则执行步骤(5),否则执行步骤(2)。
(5)所求y1就是方程cos(x)-y=0的一个实根,作为函数值返回。
程序将输出结果Result=0.739085。
请勿改动主函数main与其它函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
代码如下:
#include<conio.h>
#include<math.h>
#include<stdio.h>
float fun()
{
float y1=0.0,y0;
do
{
y0=y1;
y1=cos(y0);
}
while(fabs(y0-y1)>=1e-6);
return y1;
}
main()
{
FILE*out;
float cos=fun();
printf("Result=%f\n",cos);
out=fopen("outfile.dat","w");
fprintf(out,"%f",cos);
fclose(out);
}
输出运行窗口如下:
本周其他练习
C语言程序设计专栏
C语言编程>第九周 ① 下列程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数fun(int b[][N]),该函数的功能是:使数组左下半三角元素的值会全部置成0。
C语言编程>第九周 ② 请编写一个函数unsigned(unsigned n),n是一个大于10的无符号整数,若n是m(m≥2)位的整数,则函数求出n的后m-1位的数作为函数值返回。
C语言编程>第九周 ③ 请编写一个函数fun(char*str)该函数的功能是把字符串中的内容逆置。
C语言编程>第九周 ④ 编写函数fun,它的功能是:利用以下所示的简单迭代方法求方程cos(y)-y=0的一个实根。yn+1=cos(yn)
C语言编程>第九周 ⑤ 请编写一个函数fun,它的功能是:根据以下公式求π的值(要求满足精度0.0005,即某项小于0.0005时停止迭代):
C语言编程>第九周 ⑥ 请编写一个函数fun,它的功能是:将s所指字符串中所有下标为奇数位置上的字母转换为小写(若该位置上下是字母,则不转换)。
C语言编程>第九周 ⑦ 请编写一个函数fun,它的功能是:求出一个2×M整型二维数组中最小元素的值,并将最小值返回调用函数。
C语言编程>第九周 ⑧ 请编写函数fun,其功能是:将两个两位数的正整数x、y合并成一个整数放在z中。合并的方式是:将x数的十位和个位依次放在z的千位和十位上,y的十位和个位依次放在z的百位和个位上。
越努力越幸运!
加油,奥力给!!!