编写函数fun,其功能是:将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过k返回。
例如,若输入17,则应输出:4 6 8 9 10 12 14 15 16。
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include<stdio.h>
void fun(int m,int*k,intxx[])
{
}
main()
{
int m,n,zz[100];
void NONO();
prinff(“\nPlease enter an integer number between 10 and 100:”);
seanf(“%d”,&n);
fun(n,&m,ZZ);
printf(“\n\nThere are%d non—prime number8 less than%d:”,m,Ii);
for(n=0;n<m;n++)
printf(“\n%4d”,ZZ[n]);
NONO();
}
void NONO()
{
/*请在此函数内打开文件,输入测试数据,调用fun函数,
输出数据,关闭文件。*/
int m,13,zz[100];
FILE*rf,*wf;
rf=fopen(“in.dat”,“r”);
wf=fopen(“out.dat”,“W”);
fseanf(rf,“%d”,&n);
fun(n,&m,zz);
fprinff(wf,“%d\n%d\n”,m,n);
for(n=0;n<m;n++)
fprintf(wf,“%d\n”,zz[n]);
fclose(rf);
felose(wf);
}
【正确答案】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;/*返回非素数的个数*/
}
【答案解析】