请编写一个函数void fun(int m, int k, int xx[]),该函数的功能是将大于整数m且紧靠m的k个非素数存入所指的数组中。 例如,若输入15,5,则应输出16,18,20,21,22。 注意:部分源程序给出如下。

admin2009-02-15  36

问题 请编写一个函数void fun(int m, int k,  int xx[]),该函数的功能是将大于整数m且紧靠m的k个非素数存入所指的数组中。
   例如,若输入15,5,则应输出16,18,20,21,22。
   注意:部分源程序给出如下。
   请勿改动主函数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=0;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==0) { xx[n++]=i; /*如果不是素数,放入数组xx中*/ break; /*并跳出本层循环,判断下一个数*/ } }

解析 本题只要掌握了判断非素数和素数的算法即不难完成了,其实程序缺少部分也正是这部分。
转载请注明原文地址:https://kaotiyun.com/show/XTID777K
0

最新回复(0)