写一个例程:
函数fun,思路一:
//入口参数:lim 界限,aa[MAX] 存放素数的数组
int fun(int lim, int aa[MAX])
{
int i=0;
int j=0;
int k=0;
for(i=2;i<=lim;i++) //遍历小于等于lim的数
{
for(j=2;j<i;j++) //遍历素数
if(i%j==0) //有能被整除的数,就跳出循环
break;
if(j==i) //判断有没有跳出for循环的
aa[k++]=i;
}
return k; //返回素数的个数
}
完整代码:
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
#define MAX 100
int fun(int lim, int aa[MAX])
{
int i=0;
int j=0;
int flag=0;
int k=0;
for(i=2;i<=lim;i++)
{
for(j=2;j<i;j++)
if(i%j==0)
break;
if(j==i)
aa[k++]=i;
}
return k;
}
void main()
{
FILE *wf;
int limit,i,sum;
int aa[MAX];
system("CLS");
printf("输入一个整数:");
scanf("%d",&limit);
sum=fun(limit,aa);
for(i=0;i<sum;i++)
{
if(i%10==0&&i!=0) /*每行输出10个数*/
printf("\n ");
printf("%5d ",aa[i]);
}
/******************************/
wf=fopen("out.dat","w");
sum=fun(15,aa);
for(i=0;i<sum;i++)
{
if(i%10==0&&i!=0) /*每行输出10个数*/
fprintf(wf,"\n");
fprintf(wf,"%5d ",aa[i]);
}
fclose(wf);
/*****************************/
}
|