问答题
下列程序的功能是:将不超过整数m(m<2000)的所有素数存入数组xx。请编写函数 num(int m,int xx[])实现程序的要求,最后调用函数readwriteDat()把结果输出到文件out.dat中。
例如:若输入30,则应输出:2,3,5,7,11,13,17,19,23,29。
部分源程序已给出。
请勿改动主函数main()和输出数据函数readwriteDat()的内容。
#include <conio.h>
#include <stdio.h>
void readwriteDat();
int num(int m, int xx[])
main ( )
int m,n,xx[2000];
clrscr();
printf("\nPlease enter the integer m:");
scanf(" %d" ,&m);
n = num(m, xx);
for(m-0;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" ,&m);
n=num(m, xx);
for(m=0;m<n;m++)fprintf(wf," %d" ,xx[m]);
fprintf(wf,"\n" );
fclose(rf);
fclose(wf);
【参考答案】
提示:
类型:素数筛选。
关键点:素数筛选算法。
求给定范围1~n内的所有素数的题,可以使......
(↓↓↓ 点击下方‘点击查看答案’看完整答案 ↓↓↓)