c语言问题:写fun函数,功能是将大于形参m且紧靠m的k个素数存入xx所指的数组中。

比如我输入17 5,应该输出19,23,29,31,37.我写了一个,但是不知道错误在哪里,好像错误和内存有关。请大侠指点一下。
#include <stdio.h>

#include <stdlib.h>
void fun(int m,int k,int xx[])

{

int i,j=0,q=1,p;

while(q<=k)

{

for (i=m+1;i<m*m;i++)

{

for (p=2;p<i;p++)

{

if(i%p!=0)

xx[j++]=i;

q++;

}

}

}

for (j=0; j<k; j++)

{

printf("%d",xx[j]);

}

}

main()

{

int m,n,zz[1000]={0};

printf("\nplease ent1er two integers :");

scanf("%d %d",&m,&n);

fun(m, n, zz);

printf("\n");

}

#include <stdio.h>

#include <stdlib.h>
void fun(int m,int k,int xx[])
{ int cnt=0,i,j;
for(i=m+1;cnt<k;++i){
for(j=2;j<i;++j){
if(i%j!=0){
if(j==i-1){
xx[cnt]=i;
printf("%d ",xx[cnt]);
++cnt;
}
continue;
}
else
break;
}
}
}
int main()
{
int m,n,zz[1000]={0};
printf("\nplease ent1er two integers :");
scanf("%d %d",&m,&n);
fun(m, n, zz);
printf("\n");
return 0;
}
素数判断那块吧。。追问

麻烦您看看我那个,错在哪啊?我找了半天都不知道错在哪。。。

追答

你看看xx[cnt]=i;这里,应该把p走一遍直到p=i时循环结束才能确定它是素数,然后才能给xx[j]赋值

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-08-17
我觉得你的素数判断那块有问题,你应该把所有的全判断玩才能赋值的吧~~~
第2个回答  2014-08-17
很简单吧加我
相似回答