问答题
请编写函数fun(),其功能是:将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过k传回。 例如,输入17,则应输出4 6 8 9 10 12 14 15 16。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: #include<conio.h> #include<stdio.h> void fun(int m, int *k, int xx[])
main ( )
int m, n, zz[100]; clrscr(); printf("/nPlease enter an integer number between 10 and 100: "); scanf("%d",&n); fun(n,&m, zz); printf("/n/nThere are %d non-prime numbers less than %d: ",m,n); for(n-0;n<m;n++) printf("/n %4d",zz[n]);
【正确答案】void fun(int m, int *k, int xx[]) { int i,j,n=0; for (i=4; i<m; i++) /*找出大于1小于整数m的非素数*/ {for(j=2;j<i;j++) if{i%j==0) break; if(j<i) xx[n++]=i; } *k=n; /*反回非素数的个数*/ }