一道C语言数组题求解

/*请编写函数fun,其功能是:将所有大于1小于等于整数m的非素数存入xx所指数组中,非素数的个数通过k传回。例如,输入17,则应输出4 6 8 9 10 12 14 15 16。部分源程序给出如下,请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

#include<conio.h>
#include<math.h>
#include<stdio.h>
#include<stdlib.h>
int fun(int m, int xx[])
{
/**********Begin*******/
    

/*********End*********/  
}
int main()
{
  FILE *wf,*in;
  int m, n, zz[100];
  printf("\nPlease enter an integer number between 10 and 100: ");
  scanf("%d",&n);
  m=fun(n,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]);
/******************************/
  wf=fopen("1.out","w");
  in=fopen("1.in","r");
  fscanf(in,"%d",&n);
  m=fun(n,zz);
  for(n=0;n<m;n++)
    fprintf(wf,"%d\n",zz[n]);
  fclose(wf);
 fclose(in);
/*****************************/
system("pause");
return 0;
}

供参考:

#include<conio.h>
#include<math.h>
#include<stdio.h>
#include<stdlib.h>
int fun(int m, int xx[])
{
    /**********Begin*******/
    int i, j, k, flg;
    for (i = 2, k = 0; i <= m; i++)
        for (j = 2, flg = 1; flg && j * j <= i; j++)
        {
            if (i % j == 0) {
                xx[k++] = i;
                flg = 0;
            }
        }
    return k;
    /*********End*********/
}
int main()
{
    FILE* wf, * in;
    int m, n, zz[100];
    printf("\nPlease enter an integer number between 10 and 100: ");
    scanf("%d", &n);
    m = fun(n, 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]);
    /******************************/
    wf = fopen("1.out", "w");
    in = fopen("1.in", "r");
    fscanf(in, "%d", &n);
    m = fun(n, zz);
    for (n = 0; n < m; n++)
        fprintf(wf, "%d\n", zz[n]);
    fclose(wf);
    fclose(in);
    /*****************************/
    system("pause");
    return 0;
}