请编写函数fun,其功能是:将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过k传回。 例如,若输入:17,则应输出: 4 6 8 9 10 12 14 15 16。 注意:部分源程序在文件PROG1.C中。 请

admin2017-11-27  30

问题   请编写函数fun,其功能是:将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过k传回。
  例如,若输入:17,则应输出:
    4 6 8 9 10 12 14 15 16。
    注意:部分源程序在文件PROG1.C中。
    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include
void fun (int m, int *k, int xx [ ])
{

}
main ()
{
int m, n, zz[100];
void NONO () ;
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]);
NONO();
}
void NONO()
{
/*请在此函数内打开文件,输入测试数
据,调用fun函数,输出数据,关闭文
件。*/
int m, n, zz [100] ;
FILE *rf, *wf ;
rf = fopen("in.dat","r");
wf = fopen("out.dat","w");
fscanf(rf, "%d", &n);
fun (n, &m, zz) ;
fprintf(wf, "%d\n%d\n"/ m, n) ;
for(n = 0; n < m; n++)
fprintf(wf, "%d\n", zz[n]);
fclose(rf);
fclose(wf);
}

选项

答案 int i,j; int t=0; //初始化数组个数 for(i=2; i
解析 (1)根据求素数的方法判断数i是否为素数。
    (2)把不是素数的数留下来,其方法是:如果该数是素数则不处理;如果不是素数则放到数组xx中,并且把数组的下标加1,为下一个不是素数的数放在数组中做准备。
    (3)返回个数,把xx数组中已经写入的数的个数返回即可,即把数组xx的最大下标加1返回即可。
转载请注明原文地址:https://kaotiyun.com/show/enxp777K
0

最新回复(0)