请编写函数fun,函数的功能是:将大于形参m且紧靠m的k个素数存入xx所指的数组中。例如,若输入17,5,则应输出:19,23,29,31,37。 注意:部分源程序在文件PROG1.C文件中。 请勿改动主函数main和其他函数中的任何内容,

admin2017-11-27  25

问题   请编写函数fun,函数的功能是:将大于形参m且紧靠m的k个素数存入xx所指的数组中。例如,若输入17,5,则应输出:19,23,29,31,37。
    注意:部分源程序在文件PROG1.C文件中。
    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include
void fun (int m, int k, int xx [ ] )
{
}
main ()
{
int m, n, zz[1000] ;voidNONO ();
printf("\nPlease enter two
integers:");
scanf("%d %d", &m, &n);
fun(m, n, zz) ;
for(m = 0 ; m < n ; m++)
printf("%d ", zz[m]);
printf("\n");
NONO();
}
void NONO ()
{/* 本函数用于打开文件,输入测试数据,
调用fun函数,输出数据,关闭文件。*/
int m, n, zz[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) ;
fun(m, n, zz);
for(m = 0 ; m < n ; m++)
fprintf (wf, "%d ", zz[m]);
fprintf(wf, "\n");
}
fclose (rf);
fclose(wf); }

选项

答案int r=0, temp,p, sign=1; for(temp=m+1;temp=temp) {if(k>=0) //判断已有的素 数个数是否已经满足sum个 {xx[r++]=temp;//将素数 temp存入数组select k--;//将题目中要求的素数 个数减1 } else break; }}

解析 进入fun函数,根据前面的分析:
    首先,定义、初始化变量sign,作为素数的标志;定义r,初始化为存储素数数组的起始位。然后,每判断一次temp中的值是否为素数后,使temp的值增1,再次对temp中新的值进行判断其是否为素数,不断循环此过程,直到m的值等于指定的个数,即函数中的k个数。
转载请注明原文地址:https://jikaoti.com/ti/UHa0FFFM
0

最新回复(0)