编写函数fun,函数的功能是求出小于或等于lim的所有素数并放在aa数组中,函数返回所求出的素数的个数。 注意:部分源程序在文件PROGI.C中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

admin2013-03-29  29

问题 编写函数fun,函数的功能是求出小于或等于lim的所有素数并放在aa数组中,函数返回所求出的素数的个数。
    注意:部分源程序在文件PROGI.C中。
    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include
#define NAX 100
int fun(int lim,int aa[MAX])
{
}
main()
{
  int limit,i,sumjvoid NONO();
  int aa[NAX];
  printf("输入一个整数");
  scanf("%d",&limit);
  sum=fun(limit,aa);
  for(i=0;i    if(i%10==0&&i!=0)printf
("\n");
    printf("%5d",aa);
  }
  NONO();
}  
void NONO()
{
/*请在此函数内打开文件,输入测试数据,
调用fun函数,输出数据,关闭文件。  */
  F工LE*rf,  *wf;
  int limit,i,sum,aa[MAX];
  rf=fopen("in.dat","r");
  wf=fopen("out.dat","w");
  fscanf(rf,"%d",&limit);
  sum=fun(1imit,aa);
  for(i=0;i(wf,"%d\n",aa);
  fclose(rf);
  fclose(wf);
}

选项

答案int i,j,k=0; /*其中变量k用于统计素数个数*/ for(i=2;i<=lim;i++) { /*以下完成判断aa数组中小于或等于 lim的素数并统计个数*/ for(j=2;j<=(i/2);j++) if(i%j==0)break; if(j>(i/2))aa[k++]=i; } return k;

解析 进入fun函数,根据前面的分析:
    (1)首先,判断i是否是素数。即是否能被2~(i/2)整除。
    (2)若是素数,就将i存入数组aa,并对计数器k加1。
    (3)最后返回素数的个数k。
    其中,对于素数的判断并不只局限于上面提到的方法,也可以采用其他的方法进行判断。
转载请注明原文地址:https://kaotiyun.com/show/WPJp777K
0

最新回复(0)