//求1—100以内的素数 #include <stdio.h> #include <math.h> #define N 101 void main() { void prime(int array[]);//函数声明。声明形参为数组的函数时,形参括号内不能只写形参类型,应把将要定义的数组名也加上。即不可这样声明:void prime(int) int number[N],i,n=0; for(i=1;i<N;i++) number[i]=i; prime(number);//函数调用 for(i=2;i<N;i++) if(number[i]!=0) { n++; printf("%2d ",number[i]); if(n%10==0) putchar('/n'); } putchar('/n'); } void prime(int array[])//用数组名作函数参数,可以不定义数组大小。 { int x,y,i,n=0; i=(int)(sqrt(N)); for(x=2;x<i;x++) for(y=x+1;y<N;y++)//共有98个数被检测是否能被2至sqrt(N)之间的数整除 if(array[y]!=0) if(array[y]%x==0) { array[y]=0; n=n+1;//记录有多少个元素的值被清零 } printf("1—100中共有%d个素数:/n",98-n+1);//加1是因为2也是素数,但它没在上述98个数之中 }