计算机网络技术3级上机.doc

上传人:M****1 文档编号:562123516 上传时间:2023-06-05 格式:DOC 页数:4 大小:40.01KB
返回 下载 相关 举报
计算机网络技术3级上机.doc_第1页
第1页 / 共4页
计算机网络技术3级上机.doc_第2页
第2页 / 共4页
计算机网络技术3级上机.doc_第3页
第3页 / 共4页
计算机网络技术3级上机.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《计算机网络技术3级上机.doc》由会员分享,可在线阅读,更多相关《计算机网络技术3级上机.doc(4页珍藏版)》请在金锄头文库上搜索。

1、1,已知数据文件IN.DAT中存有300个四位数,并以调用函数readDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出所有这些四位数是素数的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b的四位数按从小到大的顺序进行排序。最后main()调用写函数writeDat()把数组b中的数输出到OUT.DAT文件。 例如:5591是素数,则该数满足条件存入数组b中,且个数cnt=cnt+1。 9812是非素数,则该数不满足条件忽略。 程序中已定义数组:a300,b300,已定义变量cnt 请勿改动数据文件IN.DAT中的任何数据、主函数main()、读

2、函数readDat()和写函数writeDat()的内容。#include int a300, b300, cnt=0 ;void readDat();void writeDat();void jsValue();int isP(int m) int i ; for(i = 2 ; i m ; i+) if(m % i = 0) return 0 ; return 1 ;void jsValue()int i,j,tmp;for(i=0;i300;i+) if(isP(ai) bcnt=ai; cnt+;/用选择排序法对数组b进行排序for(i=0;icnt;i+) for(j=j+1;jcn

3、t;j+) if(bibj) tmp=bi; bi=bj; bj=tmp; void main() int i ; readDat() ; jsValue() ; writeDat() ; printf(cnt=%dn, cnt) ; for(i = 0 ; i cnt ; i+) printf(b%d=%dn, i, bi) ;void readDat() FILE *fp ; int i ; fp = fopen(in.dat,r) ; for(i = 0 ; i 300 ; i+) fscanf(fp, %d, &ai) ; fclose(fp) ;void writeDat() FIL

4、E *fp ; int i ; fp = fopen(out.dat,w) ; fprintf(fp, %dn, cnt) ; for(i = 0 ; i cnt ; i+) fprintf(fp, %dn, bi) ; fclose(fp) ;注意题目中已经提供了判断一个数是否是素数的函数,直接调用该函数判断数组元素是否是素数;用选择排序法对数组b进行排序。2,已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:若一个四位数的千位数位置上的值大于等于百位数位置上的值,百位数位置上的值大于等于十位数位置上的值

5、,以及十位数位置上的值大于等于个位数位置上的值,并且原四位数是奇数,则统计出满足此条件的个数cnt并把这些四位数按从小到大的顺序存入数组b中,最后调用写函数writeDat()把结果cnt以及数组b中符合条件的数输出到OUT.DAT文件中。#include #define MAX 200int aMAX, bMAX, cnt = 0 ;void writeDat();void jsVal() int i,j; /*定义所需变量*/ int tmp; int gw,sw,bw,qw; for(i=0;i=bw&bw=sw&sw=gw&ai%2=1) bcnt=ai;cnt+;for(i=0;ic

6、nt;i+) /*用选择排序法进行排序*/ for(j=j+1;jcnt;j+) if(bibj) tmp=bi; bi=bj; bj=tmp; 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) ; p

7、rintf(n) ; writeDat() ;void 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) ;因为要使用循环,故应定义循环变量i,j,变量tmp用于存放计算的中间结果,此外还需定义gw,sw,bw,qw存放各位数位上的值。 用for语句进行MAX次循环,每一次循环按要求进行判断,为真则存于数组b中,cnt累加1计数。 3,一直在文件IN.DAT中存有100个产

8、品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)五部分组成。其中:金额=单价*数量计算得出。函数ReadDat()读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求:按产品名称从大到小进行排序,若产品名称相同,则按金额从小到大的进行排列,最终排列结果仍存入结构数组sell中。最后main()函数调用函数WriteDat()把结果输出到文件OUT.DAT中。 例如:selli=temp;#include #include #include #define MAX 1

9、00typedef struct char dm5 ; /* 产品代码 */ char mc11 ; /* 产品名称 */ int dj ; /* 单价 */ int sl ; /* 数量 */ long je ; /* 金额 */ PRO ;PRO sellMAX ;void ReadDat() ;void WriteDat() ;void SortDat() PRO temp; /*定义所需变量*/ int i,j;for(i=0;iMAX;i+) /*选择排序法*/ for(j=i+1;jMAX;j+) if(strcmp(selli.mc,sellj.mc)sellj.je) temp

10、=selli; selli=sellj; sellj=temp; void main() memset(sell, 0, sizeof(sell) ; ReadDat() ; SortDat() ; WriteDat() ;void ReadDat() FILE *fp ; char str80, ch11 ; int i ; fp = fopen(K:k0135000215IN.DAT, r) ; for(i = 0 ; i 100 ; i+) fgets(str, 80, fp) ; memcpy(selli.dm, str, 4) ; memcpy(selli.mc, str + 4, 10) ; memcpy(ch, str + 14, 4) ; ch4 = 0 ; selli.dj = atoi(ch) ; memcpy(ch, str + 18, 5) ; ch5 = 0 ; selli.sl = atoi(ch) ; selli.je = (long)selli.dj * selli.sl ; fclose(fp) ;void WriteDat() FILE *fp ; int i ; fp = fopen(K:k0135000215OUT.DAT, w) ; for(i = 0 ; i 100 ; i+) fprintf(fp,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号