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

admin2013-04-02  35

问题 请编写函数fun,其功能是:将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过k传回。
    例如,若输入:17,则应输出:4 6 8 9 10 12 14 15 16。
    注意:部分源程序在文件PROGl.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://jikaoti.com/ti/xin0FFFM
0

相关试题推荐
最新回复(0)