程序test.c的功能是:将大于整数m且紧靠m的k个素数存入数组xx。请考生编写函数num(int m,int k,int xx[])实现程序的要求,最后调用函数readwriteDAT()把结果输出到out.dat文件中。
例如,若输入17,5,则应输出:19,23,29,31,37。
注意:部分源程序存在test.c文件中。
请勿改动数据文件in.dat中的任何数据以及主函数main()和输出函数readwriteDAT()的内容。
#include <stdio.h> //include语句说明各程序中包含vc6.0中的标准输入输出库函数stdio.h
void readwriteDAT();//函数readwriteDAT()说明语句
int isP(int m) //函数isP(int m)判断m是否为素数,如果是素数则返回1,否则返回0
int i; //定义变量i
for (i=2; i<m; i++) //变量i从2依次递增到m-1
if (m % i==0) return 0; //如果m能被i整除,返回0
return 1; //否则返回1
void num(int m, int k, int xx[])
main()
int m, n, xx[1000]; //定义变量m,n和数组xx[1000]
printf("\nPlease enter two integers:");
scanf("%d, %d", &m, %n); //从键盘读入两个数赋给变量m,n
num (m,n,xx); //调用函数num(int m,int k,int xx[])实现将大于整数m且紧靠m的k个素数存入数组xx
for (m=0; m<n; m++) //变量m从0依次递增到n-1
printf("%d",xx[m]); //输出数组元素xx[m]
printf("\n"); //输出一个回车换行符
readwriteDAT();//调用函数readwriteDAT()把结果输出到out.dat文件中
void readwriteDAT()//函数readwriteDAT()的定义语句
int m,n,xx[1000],i; //定义整型变量m,n,i和数组xx[1000]
FILE *rf,*wf; //定义文件指针变量rf,wf
rf=fopen("in.dat","r"); //以只读的方式的打开文件in.dat,并用rf指向这个文件
wf=fopen("out.dat","w"); //以只写的方式的打开文件out.dat,并用wf指向这个文件
for (i=0; i<10; i++) //循环变量i从0依次递增到9
fscanf (rf,"%d%d",&m,&n); //从文件in.dat读入两个数值赋给m,n
num (m,n,xx);//调用函数函数num(m,k,xx[])实现将大于整数m且紧靠m的k个素数存入数组xx
for(m=0;m<n; m++) //循环变量m从0依次递增到n-1
fprintf (wf,"%d",xx[m]); //把数组元素xx[m]写入到文件out.dat中
fprintf (wf,"\n"); //把回车换行符写入到文件out.dat中
fclose (rf); //关闭输入文件in.dat
fclose (wf); //关闭输出文件out.dat