解释一下程序(C语言)

来源:百度知道 编辑:UC知道 时间:2024/05/10 02:16:44
题目21:下列程序的功能是:利用发下所示的简单迭代方法求方程: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()的内容。
-----------------------------
float countValue() /*标准答案*/
{float x0,x1=0.0;
while(1)
{x0=x1;
x1=cos(x0);
if(fabs(x0-x1)<1e-6) break;
}
return x1;
}
或者:
float countvalue()
{ double x0,x1;
x1=0.0;
do
{ x0=x1;
x1=cos(x0); }
while(fabs(x0-x1)>=0.000001);
return x1; }

题目24:在三位整数(100至999)中寻找符合条件的整数并依次从小到大存入数组中;它既是完全平方数,又是两位数字相同,例如144、676等。请编制函数实现此功能,满足该条件的整数的个数通过所编制的函数返回。最后调用函数writeDat()把结果输出到文件out.dat中。
注意:部分源程序已给出。
请勿改动主函数main()和写函数writeDat()的内容。
--------------------
jsValue(int a[10][9

float countValue() /*标准答案*/
{float x0,x1=0.0;
while(1) //表示循环条件始终为真。
{x0=x1; // x1值赋给x0;
x1=cos(x0); //x0的余弦值给x1
if(fabs(x0-x1)<1e-6) break; 这里fabs()是求绝对值函数,看x0-x1是否小0.000001,如果是,则执行break; 退出while循环。
}
return x1; //循环出来再执行这一步,返回x1值。
}
或者:
float countvalue()
{ double x0,x1;
x1=0.0;
do //这里只是用了do-while循环;
{ x0=x1;
x1=cos(x0); }
while(fabs(x0-x1)>=0.000001); //退出循环条件也是一样。
return x1; }

===========================================

#include<stdio.h>

int jsValue(int a[10][9]) /*标准答案*/ //这个答案也有错的时候 ,特别有些是多余的,估计是其他类似题目,拿来修改一下。
{int I,j,k=0;
int hun,ten,data ,bb[100]; // 按答案,这里声明一个数组bb[100];
for(I=100;I<=999;I++) //
{j=10;
while(j*j<=I)
{if (I==j*j)
{hun=I/100;data=I-hun*100; //这里hun是百位数字,data除去百位的两位数 这里 data可以 I%100直接得到
ten=data/10;