28题 下列程序的功能是:将大于整数m且紧靠m的k个素数存入数组xx。请编写函数num(int m,int k,int xx[])实现程序的要求,最后调用函数readwriteDat()把结果输出到文件out.dat中。
例如:若输入17,5,则应输出:19,23,29,31,37。
部分源程序已给出。
请勿改动主函数main()和输出数据函数writeDat()的内容。 #include <conio.h>
#include <stdio.h>
void readwriteDAT();
int isP(int m)
{
int i;
for(i=2;i<m;i++)
if(m % i==0)return 0;
return 1;
}
void num(int m,int k,int xx[])
{
}
main()
{
int m,n,xx[1000];
clrscr();
printf("\nPlease enter two integers:");
scanf(" %d%d" ,&m,&n);
num(m,n,xx);
for(m=n;m<n;m++)
printf(" %d" ,xx[m]);
printf("\n" );
readwriteDAT();
}
viod readwriteDAT()
{
int m,n,xx[1000], i;
FILE *rf,*wf;
rf=fopen("in.dat" ," r" );
wf=fopen(" out.dat" ," w" );
for(i=0;i<10;i++){
fscanf(rf," %d%d" ,&m,&n);
num(m,n,xx);
for(m=n;m<n;m++)fprintf(wf," %d" ,xx[m]);
fprintf(wf,"\n" );
}
fclose(rf);
fclose(wf);
}
注:太简单。
void num(int m,int k,int xx[])
{
int i,j=0;
i=m+1;
while(j<k)
{if(isp(i)) xx[j++]=i;
i++;
}
}