主要是看函数fun的功能,将所有大于1小于m的非素数存入xx所指数组中,非素数个数通过k传回 比如输入17,得到的结果是9和4 6 8 9 10 12 14 15 16 下面写好的程序可是运行结果是错误的 如果能找出原因的话请帮忙说一下, 也希望能有更好的算法
#include "stdio.h" #include "conio.h" void fun(int m,int *k,int xx[]) {int i,j,t=0; for(i=4;i<m;i++) {for(j=2;j<i-1;j++) if(i%j!=0&&i%(j-1)!=0) break; if(j<i) { xx[t]=i; t++; break; } } *k=t; } main() { int m,n,zz[100]; clrscr(); printf("please enter an integer number between 10 and 100:"); scanf("%d",&n); fun(n,&m,zz); printf("there are %d non-prime numbers less than %d:",m,n); for(n=0;n<m;n++) printf("%4d",zz[n]); }