编写函数int fun(int lim, int aa[MAX]),该函数的功能是求出小于或等于lim的所有素数并放在aa数组中,该函数返回所求出的素数的个数。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: #include<conio.h> #include<stdio.h> #define MAX 100 int fun(int lim, int se[MAX]) { } main() {int limit,i,sum;int aa[MAX];clrscr();printf("输入一个整数");scanf("%d",&limit);sum=fun(limit,aa);for(i=0;i<sum;i++) { if(i%10==0&&i!=0) /*每行输出10个数*/ printf("\n"); printf("%5d ",aa[i]); } }
参考答案:
解析:int fun(int lim, int aa[MAX]) { int i,j,k=0; for(i=2;i<=lim;i++) /*求出小于或等于lim的全部素数*/ { for(j=2;j<i;j++) if(i%j==0) break; if(j>=i) aa[k++]=i;; /*将求出的素数放入数组aa中*/ } return k; /*返回所求出的素数的个数*/ } 在做这道题时,我们只需掌握素数的基本算法就可以了,一般表示素数的方法如下: for (j=2;j<i;j++) if(i%j==0) break; if(j>=i)