1、 printf(nPlease enter two integers:); scanf(%d%d, &m, &n); primenum(m, n, array); for (m=0; mn; m+) printf(%d , arraym);n rwdata();void rwdata() int m, n, array1000, i; FILE *readfile, *writefile; readfile = fopen(in.dat, r writefile = fopen(out.datw for (i=0; i half) arrayn = value; n+; if (n = k)
2、break; value+;【容错分析】判断一个数m(大于)是否素数的简单的算法:枚举到m/2之间的整数,看能否被m整除,如果能整除,就不是素数,否则是素数。2.在文件IN.dat中有200个正整数,且每个数均在10009999之间。函数RData()读取这200个数存放到数组original中。请编写函数numAscend(),其功能是:要求按每个数的后3位的大小进行升序排列,然后取出满足此条件的前10个数依次存入数组result中,如果后3位的数值相等,则按原先的数值进行降序排列。最后调用函数WData(),把结果result输出到文件OUT.dat中。例如,处理前:6012 5099 9
3、012 7025 8088处理后:9012 6012 7025 8088 5099部分程序已给出。请勿改动主函数main()、读数据函数RData()和输出数据函数WData()的内容。string.hint original200, result10;void numascend() void RData() FILE *in; int i; in = fopen(IN.dat200; fscanf(in, %d,originali); fclose(in);void WData() FILE *out; out = fopen(OUT.dat printf( %d, resulti); f
4、printf(out, %dn fclose(out);void main() RData(); numascend(); WData();【题目分析】首先我们来看看题中要求我们解决的问题有哪些。按original数组中各元素数字的后3位数的大小进行升序排列,如果数值相等,则按原先的数值进行降序排列;取出排序后的original数组中的前10个数依次存入result数组中。【解题思路】根据上面的分析,编写程序有以下几个步骤:第1步:首先分解出数组中两个元素的后三位,这里采用在两次循环中求出正整数originali和originalj对1000的余数的方法;第2步:然后比较两个数余数的大小,如果
5、正整数originali和originalj对1000的余数不相同,则按照升序进行排序,如果相同,则比较originali和originalj的大小,按照降序进行排序;第3步:利用一个for循环语句把original数组中的前10个数输出给result数组。 int i, j, data;199; for (j=i+1; j originalj%1000) data = originali; originali = originalj; originalj = data; else if (originali%1000 = originalj%1000) if (originali #defi
6、ne MAX 100typedef struct char code5; /* 产品代码 */ char name11; /* 产品名称 */ int uprice; /* 单价 */ int amount; /* 数量 */ long sum; /* 金额 */ PRO;PRO sellMAX;void RData();void WData();void DescSort() memset(sell, 0, sizeof(sell); RData(); DescSort(); FILE *fp; char str80, ch11; fp = fopen(100; fgets(str, 80,
7、 fp); memcpy(selli.code, str, 4); memcpy(selli.name, str+4, 10); memcpy(ch, str+14, 4); ch4 = 0; selli.uprice = atoi(ch); memcpy(ch, str+18, 5); ch5 = 0; selli.amount = atoi(ch); selli.sum = (long)selli.uprice * selli.amount; fclose(fp);void WData(void)%s %s %4d %5d %5dn, selli.code, selli.name, selli.uprice, selli.amount, selli.sum); fprintf(fp,
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1