下载此文档

华东理工大学2012年专业学位硕士招生目录.doc


文档分类:研究生考试 | 页数:约21页 举报非法文档有奖
1/21
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/21 下载此文档
文档列表 文档介绍
1. 调用函数 rwdata() ,从 文件中读取 10 组数据(m和k值), 并嵌套调用 primenum 函数分别得出 array[] 数组。请编写函数 primenum(int m, intk, int array[]) ,该函数的功能是: 将紧靠 m的k 个素数存入数组 array 并在屏幕上显示。最后把结果输出到文件 中。例如,若输入 39 ,则应输出 57 11 13 17 19 23 29 31。注意:部分程序已经给出。请勿改动主函数 main() 和输出数据函数 rwdata() 的内容。#include <> #include <> void rwdata(); void primenum(int m, int k, int array[]) {} main() { int m, n, array[1000]; printf("\nPlease enter two integers:"); scanf("%d%d", &m, &n); primenum(m, n, array); for (m=0; m<n; m++) printf("%d ", array[m]); printf("\n"); rwdata(); } void rwdata() { int m, n, array[1000], i; FILE *readfile, *writefile; readfile = fopen("", "r"); writefile = fopen("", "w"); for (i=0; i<10; i++) { fscanf(readfile, "%d %d", &m, &n); primenum(m, n, array); for (m=0; m<n; m++) fprintf(writefile, "%d ", array[m]); fprintf(writefile, "\n"); } fclose(readfile); fclose(writefile); } 【知识点播】素数的定义: 如果一个数的正因子只有1和这个数本身, 那么这个数就是素数。【题目分析】分析题目可知,题中需要解决的问题就是 Primenum 函数的功能问题( rwdat a 函数功能题中已经给出) ,而 Primenum 函数的功能是求在指定数 m 之后的 k 个素数,因此本题的关键在于如何判断一个数是素数, 之后就可以通过一个 for 循环来求得在 m 之后的 k 个素数了。【解题思路】根据素数的定义, 本题采用的算法是: 首先定义一个变量 Value , 并把 m 之后的数逐个赋值给该变量; 然后用 2~value/2 数除 value , 如果 value 能被 2~value/2 之中的任何一个整数整除,则 value 不是素数,结束循环;如果 value 不能被 2~ value/2 之间的任一整数整除,则退出循环,然后判断循环变量 i 是否大于 value/2 ,如果大于,则 value 是素数, 并将 value 值赋给 array[n] ,然后 n++ ;再判断 n 是否大于等于 k ,如果大于等于 k ,就完成了程序要求的功能,退出循环,否则 value 加1 ,根据以上算法继续进行。【答案】 void primenum(int m, int k, int array[]) { int value = m+1; int half, n= 0, i; while(1) { half = value/2; for (i=2; i<=half; i++) if (value%i == 0) break; if (i> half) { array[n] = value; n++; } if (n >= k) break; value++; }} 【容错分析】判断一个数 m( 大于1 ) 是否素数的简单的算法: 枚举2到 m/2 之间的整数, 看能否被 m 整除,如果能整除,就不是素数,否则是素数。 2. 在文件 中有 200 个正整数, 且每个数均在 1000~9999 之间。函数 RData() 读取这 200 个数存放到数组 original 中。请编写函数 numAscend() ,其功能是:要求按每个数的后 3位的大小进行升序排列,然后取出满足此条件的前 10 个数依次存入数组 result 中,如果后 3 位的数值相等,则按原先的数值进行降序排列。最后调用函数 WData() ,把结果 result 输出到文件 中。例如,处理前: 6012 5099 9012 7025 8088 处理后: 9012

华东理工大学2012年专业学位硕士招生目录 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数21
  • 收藏数0 收藏
  • 顶次数0
  • 上传人phl0420371
  • 文件大小0 KB
  • 时间2016-03-14