}
或者:
float countvalue() { double x0,x1; x1=0.0; do
{ x0=x1; x1=cos(x0); }
while(fabs(x0-x1)>=0.000001);
return x1; } 原程序如下: #include
main() {clrscr();
printf(\实根=%f\\n\
printf(\ writeDat();} writeDat() {FILE *wf;
wf=fopen(\ fprintf(wf,\ fclose(wf);}
22:请编写函数countvalue(),它的功能是:求n以内(不包括n)同时能被3和7整数的所有自然数之和的平方根s,并作为函数值返回,最后结果s输出到文件out.dat中。
例如若n为1000时,函数值应为:s=153.909064。 注意:部分源程序已给出。
请勿改动主函数main()和输入输出数据函数progreadwrite()的内容。 double countValue(int n) /*标准答案*/ {double xy=0.0; int I;
for(I=1;I if(I%3==0&&I%7==0) xy+=I; xy=sqrt((double)xy); return xy; } double countvalue(int n) { int i,j=0; double k; for(i=0;i if(i%3==0&&i%7==0) j+=i; k=sqrt(j); return k; } 原程序如下: #include double countvalue(int n) /*标准答案*/ {double xy=0.0; int I; for(I=1;I if(I%3==0&&I%7==0) xy+=I; xy=sqrt((double)xy); return xy; } main() { clrscr(); printf(\自然数之和的平方根=%f\\n\ progReadWrite(); } progReadWrite() {FILE *fp,*wf; int i,n; float s; fp=fopen(\ if(fp==NULL){ printf(\数据文件in.dat不存在!\ return; } wf=fopen(\ for(i=0;i<10;i++){ fscanf(fp,\ s=countvalue(n); fprintf(wf,\ fclose(fp); fclose(wf); system(\ } 23:已知在文件in.dat中存有N个(个数<200)四位数字的正整数,函数readdat()读取这N个正 整数并存入数组xx中。请编制函数calvalue(),其功能要求:1、求出这N个实数的平均值aver; 2、分别求出这N个实数的整数部分之和sumint以及小数部分之和sumdec,最后调用函数 writedat()把所求的结果输出到文件out.dat中。 注意:部分源程序已给出。 请勿改动主函数main()、读数据函数readdat()和输出数据函数writedat()的内容。 void CalValue(void) /*标准答案*/ {int I; double x,sum=0; for (I=0;I aver=sum/MAXNUM; } 原程序如下: #include int N= 0 ; /* 文件IN.DAT中共有多少个实数 */ double aver=0.0;/*平均值*/ double sumint=0.0;/*整数部分之和*/ double sumdec=0.0;/*小数部分之和*/ int ReadDat(void) ; void WriteDat(void) ; void Calvalue(void) { } void main() { int i ; clrscr() ; for(i = 0 ; i < MAXNUM ; i++) xx[i] = 0 ; if(ReadDat()) { printf(\数据文件IN.DAT不能打开!\\007\\n\ return ; } Calvalue() ; printf(\文件IN.DAT中共有实数=%d个\\n\ printf(\平均值=%.2lf\\n\ printf(\整数部分之和=%.2lf\\n\ printf(\小数部分之和=%.2lf\\n\ WriteDat() ; system(\ } int ReadDat(void) { FILE *fp ; int i = 0 ; if((fp = fopen(\ while(!feof(fp)) { fscanf(fp, \ } fclose(fp) ; return 0 ; } void WriteDat(void) { FILE *fp ; fp = fopen(\ fprintf(fp, \ fclose(fp) ; } 24:在三位整数(100至999)中寻找符合条件的整数并依次从小到大存入数组中;它既是完全 平方数,又是两位数字相同,例如144、676等。请编制函数实现此功能,满足该条件的整数的个 数通过所编制的函数返回。最后调用函数writeDat()把结果输出到文件out.dat中。 注意:部分源程序已给出。 请勿改动主函数main()和写函数writeDat()的内容。 jsValue(int a[10][9]) /*标准答案*/ {int I,j,k=0; int hun,ten,data; for(I=100;I<=999;I++) {j=10; while(j*j<=I) {if (I==j*j) {hun=I/100;data=I-hun*100; ten=data/10;data=data-ten*10; if(hun==ten||hun==data||ten==data) {bb[k]=I;k++;} } j++;} } return k; } 原程序如下: #include main() {int b[20],num; num=jsvalue(b); writeDat(num,b); } writeDat(int num,int b[]) {FILE *out; int i; out=fopen(\ fprintf(out,\