请问 将大于m 且紧靠m的k个素数存入数组xx传回
题目要编写一个 函数 将大于m 且紧靠m的k个素数存入数组xx传回。 例如:若输入17 5 则应输出:19,23,29,31,37。 我写的 这样 但是结果总是不对。答案提供的中间有while循环 但是不太会用。。能否给我指出 一个用for 循环解决的办法 #include <conio.h>#include <stdio.h>
void readwriteDat();
void num(int m, int k, int xx[])
{
int i,j,n=0;
for(i=m+1;i<=m+k;i++)
for(j=2;j<i;j++)
if(i%j==0)/*并没有要求程序的速度。所以我直接从2除到本身求素数,这样比较方便*/
break;
else
xx[n]=i;
n++;
}
main()
{
int m, n, xx[1000];
printf("\nPlease enter two integers:");
scanf("%d%d", &m, &n);
num(m, n, xx);
for (m=0; m<n; m++)
printf("%d ", xx[m]);
printf("\n");
readwriteDat();
}
void readwriteDat()
{
int m, n, xx[1000], i;
FILE *rf, *wf;
rf = fopen("in.dat", "r");
wf = fopen("out.dat", "w");
for (i=0; i<10; i++)
{
fscanf(rf, "%d %d", &m, &n);
num(m, n, xx);
for (m=0; m<n; m++)
fprintf(wf, "%d ", xx[m]);
fprintf(wf, "\n");
}
fclose(rf);
fclose(wf);
}
[ 本帖最后由 wymyhome 于 2009-9-21 10:37 编辑 ]