#include "PrimeNumer.h" /* 请编写一个函数jsValue(int m,int k,int xx[]), 该函数的功能是:将大于整数m且紧靠m的k个素数存入数组xx传回。 最后调用函数writeDat()读取10组数据,分别得出结果且把结果输出到文件out.dat中。 部分源程序存在文件prog1.c中。 例如:若输入17 5 则应输出:19,23,29,31,37。 */ /* 功能:将大于m的k个素数存入数组中 */ void JsValue(int m, int k, int* pNum) { if ( !pNum ) return; ++m; int i = 0; while ( k > 0 ) { if ( IsPrimeNum(m) ) { pNum[i] = m; --k; ++i; } ++m; } } /* 判断是否为素数 */ int IsPrimeNum(int nNum) { if ( nNum <= 1 ) return 0; int i = 2; for ( ;i <= nNum / 2;++i ) { if( !(nNum % i) ) { return 0; } } return 1; } /* 功能:读取10组数据,得出结果并将结果写入到out.dat文件中 Parameter: k:表示要获取多少个素数 m:表示从大于这个数开始 */ void WriteData(int k, int m) { /*分配内存*/ int* nNum = (int*)malloc(k*sizeof(int)); memset(nNum, 0, k*sizeof(int)); JsValue(m, k, nNum);//设置数据 FILE* file; file = fopen("out.dat", "w"); if ( !file ) return; int i = 0; for ( ;i < SETMAXNUMBER;++i ) { fprintf(file, "%d/n", nNum[i]); } free(nNum);//释放内存 fclose(file); } /* 功能:从指定文件中读取数据, */ void ReadData(const char* sFileName) { if ( !sFileName ) return; FILE* file = fopen(sFileName, "r"); if ( !file ) { printf("error:open file fail!/n"); return; } int num = 0; while( !feof(file) ) { fscanf(file, "%d", &num); printf("%d/n", num); } fclose(file); }