资源预览内容
第1页 / 共14页
第2页 / 共14页
第3页 / 共14页
第4页 / 共14页
第5页 / 共14页
第6页 / 共14页
第7页 / 共14页
第8页 / 共14页
第9页 / 共14页
第10页 / 共14页
亲,该文档总共14页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
题目51(整数各位打散组合运算题)没有提供求素数函数isprime() ,可自己编制已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:把千位数字和十位数字重新组成一个新的十位数(新十位数的十位数字是原四位数的千位数字,新十位数的个位数字是原四位数的十位数字),以及把个位数字和百位数字组成另一个新的十位数(新十位数的十位数字是原四位数的个位数字,新十位数的个位数字是原四位数的百位数字),如果新组成的两个十位数均是素数且新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数cnt。最后main()函数调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。注意:部分源程序存在文件prog1.c中。程序中已定义数组:a200,b200,已定义变量:cnt请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。#include #define MAX 200int aMAX, bMAX, cnt = 0 ;int isprime(int m)int i;for(i=2;i=m/2;i+) if(m%i=0) return 0;return 1;void jsVal()int i,j,qw,bw,sw,gw;int ab,cd;for(i=0;i=10&cd=10) bcnt+=ai; for(i=0;icnt-1;i+) for(j=i+1;jcnt;j+) if(bibj) qw=bi;bi=bj;bj=qw;void readDat()int i ;FILE *fp ;fp = fopen(in.dat, r) ;for(i = 0 ; i MAX ; i+) fscanf(fp, %d, &ai) ;fclose(fp) ;void main()int i ;readDat() ;jsVal() ;printf(满足条件的数=%dn, cnt) ;for(i = 0 ; i cnt ; i+) printf(%d , bi) ;printf(n) ;writeDat() ;writeDat()FILE *fp ;int i ;fp = fopen(out.dat, w) ;fprintf(fp, %dn, cnt) ;for(i = 0 ; i cnt ; i+) fprintf(fp, %dn, bi) ;fclose(fp) ;*题目52(整数各位打散组合运算题)已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:把千位数字和个位数字重新组成一个新的十位数(新十位数的十位数字是原四位数的千位数字,新十位数的个位数字是原四位数的个位数字),以及把百位数字和十位数字组成另一个新的十位数(新十位数的十位数字是原四位数的百位数字,新十位数的个位数字是原四位数的十位数字),如果新组成的两个十位数均是奇数并且两个十位数中至少有一个数能被5整除,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数cnt。最后main()函数调用写函数writeDat( )把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。注意:部分源程序存在文件prog1.c中。程序中已定义数组:a200,b200,已定义变量:cnt请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。#include #define MAX 200int aMAX, bMAX, cnt = 0 ;void jsVal()int i,thou,hun,ten,data,j;int ab,cd;for(i=0;i=10&cd=10) bcnt+=ai; for(i=0;icnt-1;i+) for(j=i+1;jcnt;j+) if(bibj) data=bi;bi=bj;bj=data;void readDat()int i ;FILE *fp ;fp = fopen(in.dat, r) ;for(i = 0 ; i MAX ; i+) fscanf(fp, %d, &ai) ;fclose(fp) ;void main()int i ;readDat() ;jsVal() ;printf(满足条件的数=%dn, cnt) ;for(i = 0 ; i cnt ; i+) printf(%d , bi) ;printf(n) ;writeDat() ;writeDat()FILE *fp ;int i ;fp = fopen(out.dat, w) ;fprintf(fp, %dn, cnt) ;for(i = 0 ; i 0,则该数满足条件存入数组b中,且个数cnt=cnt+1。 9812,9-8-1-20,则该数不满足条件忽略。部分源程序存在文件prog1.c中。程序中已定义数组:a300,b300,已定义变量:cnt请勿改动主函数main()、读函数ReadDat()和写函数writeDat()的内容。#include int a300,b300,cnt=0;jsValue() int i,j,qw,bw,sw,gw;for(i=0;i0) bcnt+=ai; for(i=0;icnt-1;i+) for(j=i+1;jbj) qw=bi;bi=bj;bj=qw;main()int i;readDat();jsValue();writeDat();printf(cnt=%dn,cnt);for(i=0;icnt;i+) printf(b%d=%dn,i,bi);readDat()FILE *fp;int i;fp=fopen(in.dat,r);for(i=0;i300;i+)fscanf(fp,%d,&ai);fclose(fp);writeDat()FILE *fp;int i;fp=fopen(out.dat,w);fprintf(fp,%dn,cnt);for(i=0;icnt;i+)fprintf(fp,%dn,bi);fclose(fp);*题目54(整数各位数运算排序题)已知数据文件in.dat中存有300个四位数,并已调用读函数ReadDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数加百位数上的数等于十位数上的数加个位数上的数的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b的四位数按从大到小的顺序进行排序,最后调用写函数writeDat()把结果输出到out.dat文件。 例如:7153,7+1=5+3,则该数满足条件存入数组b中,且个数cnt=cnt+1。 8129,8+12+9,则该数不满足条件忽略。部分源程序存在文件prog1.c中。程序中已定义数组:a300,b300,已定义变量:cnt请勿改动主函数main()、读函数ReadDat()和写函数writeDat()的内容。#include int a300,b300,cnt=0;jsValue() int i,j,qw,bw,sw,gw;for(i=0;i300;i+) qw=ai/1000; bw=ai/100%10; sw=ai%100/10; gw=ai%10; if(qw+bw=sw+gw) bcnt+=ai; for(i=0;icnt-1;i+) for(j=i+1;jcnt;
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号