问题 问答题

请编写一个函数void fun(int m, int k, int xx[]),该函数的功能是:将大于整数m且紧靠m的k个素数存入所指的数组中。 例如,若输入17,5,则应输出19,23,29,3l,37。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: #include <conio.h> #include <stdio.h> void fun(int m, int k, int xx[]) { } main() { int m,n, zz[1000]; clrscr(); printf("\nPlease enter two integers: "); scanf("%d%d",&m,&n); fun(m,n,zz); for(m=O;m<n;m++) printf("%d ",zz[m]); printf("\n "); }

答案

参考答案:

解析:void fun(int m, int k, int xx[]) { int i,j,n; for (i=m+1,n=0;n<k;i++) /*找大于m的素数,循环k次,即找出紧靠m的k个素数*/ {for(j=2;j<i;j++) /*判断一个数是否为素数,如果不是,跳出此循环,判断下一个数*/ if(i%j==O) break; if(j>=i) /*如果是素数,放入数组xx中*/ xx[n++]=i; } } 本题只要掌握了判断素数的算法即不难完成了,其实程序缺少部分也正是这部分。

问答题 论述题
单项选择题