fp = fopen("OUT.DAT", "w") ; fprintf(fp, "%.2lf\n%.2lf\n%.2lf\n", aver,sumint,sumdec) ; fclose(fp) ; } 题目24 下列程序prog1.c的功能是:在三位整数(100至999)中寻找符合条件的整数并依次从小到大存入数组中;它既是完全平方数,又是两位数字相同,例如144、676等。 请编制函数实现此功能,满足该条件的整数的个数通过所编制的函数返回。 最后调用函数writeDat()把结果输出到文件out.dat中。 请勿改动主函数main()和写函数writeDat()的内容。 #include int jsValue(int bb[]) {int i,j,k=0; int hun,ten,data; for(i=10;i<32;i++) {j=I*I; hum=j/100; ten=j%100/10; data=j%10; if(hum==ten||hum==data||ten==data) bb[k++]=j;} return k; } main() { int b[20],num; num=jsValue(b); writeDat(num,b); } writeDat(int num,int b[]) { FILE *out; int i; out=fopen("out.dat","w"); printf("%d\n",num); fprintf(out,"%d\n",num); for(i=0;i fclose(out); } ★题目25 下列程序的功能是:寻找并输出11至999之间的数m,它满足m,m2和m3均为回文数。所谓回文数是指其各位数字左右对称的整数,例如121,676,94249等。满足上述条件的数如m=11,m2=121,m3=1331皆为回文数。请编制函数int svalue(long m)实现此功能,如果是回文数,则函数返回1,反之则返回0。最后把结果输出到文件out.dat中。 注意:部分源程序已给出。 请勿改动主函数main()的内容。 #include int jsValue(long n) {int i,strl,half; char xy[20]; ltoa(n,xy,10); strl=strlen(xy); half=strl/2; for(i=0;i if(xy[i]!=xy[--strl]) break; if(i>=half) return 1; else return 0; } main() {long m; FILE *out; out=fopen("out.dat","w"); for(m=11;m<1000;m++) { if(jsValue(m)&&jsValue(m*m)&&jsValue(m*m*m)) { printf("m=%4ld,m*m=%6ld,m*m*m=%8ld \n",m,m*m,m*m*m); fprintf(out,"m=%4ld,m*m=%6ld,m*m*m=%8ld \n",m,m*m,m*m*m); } } fclose(out); system("pause"); } ★☆题目26 已知在文件IN.DAT中存有若干个(个数<200)四位数字的正整数,函数ReadDat()读取这若干个正整数并存入数组xx中。请编制函数CalValue(),其功能要求:1、求出这文件中共有多少个正整数totNum;2、求这些数右移1位后,产生的新数是偶数的数的个数totCnt,以及满足此条件的这些数(右移前的值)的算术平均值totPjz,最后调用函数writeDat()把所求的结果输出到文件OUT.DAT中。 部分源程序存在文件prog1.c中。 请勿改动主函数main()、读函数ReadDat()和写函数writeDat()的内容。 #include #include #define MAXNUM 200 int xx[MAXNUM]; int totNum=0; /*文件IN.DAT中共有多少个正整数*/ int totCnt=0; /*符合条件的正整数的个数*/ double totPjz=0.0; /*平均值*/ int ReadDat(void); void writeDat(void); void CalValue(void) {int i,data; for(i=0;i if(xx[i]>0) { totNum++; data=xx[i]>>1; if(data%2==0){totCnt++;totPjz+=xx[i];} } if(totCnt==0) totPjz=0; else totPjz/=totCnt; } void main() { int i; clrscr(); for(i=0;i if(ReadDat()){ printf("数据文件IN.DAT不能打开!\007\n"); return; } CalValue(); printf("文件IN.DAT中共有正整数=%d个\n",totNum); printf("符合条件的正整数的个数=%d个\n",totCnt); printf("平均值=%.2f\n",totPjz); writeDat(); } int ReadDat(void) { FILE *fp; int i=0; if((fp=fopen("IN.DAT","r"))==NULL) return 1;
上一页 [1] [2] [3] [4] 下一页
|