问题在于误用逗号表达式
j = 2, k = 0 ;//实际执行此行后 j=0 , k=0
修正:#include <stdio.h>
#include <math.h>
int isprime(int x);
int main() {
int X = pow(10, 4), M, N, j, k, i, t = 0;
scanf("%d%", &M, &N);
int prime[X];
j=2;
k=0;
for (; j < X; j++) {//实际执行此行后 j=0 , k=0
if (isprime(j)) {
prime[k] = j; //这一行赋值一直都是0;不知道哪里有问题
t++;
printf("%d %d %d", prime[k], j, k);
k++;
if (t % 10 == 0) {
printf("\n");
} else {
printf(" ");
}
}
}
// for (i = M - 1; i < N; i++) {
// printf("%d", prime[i]);
// t++;
// if (t % 10 == 0) {
// printf("\n");
// } else {
// printf(" ");
// }
// }
// return 0;
}
int isprime(int x) {
int ret = 1, q;
if (x == 1) {
ret = 0;
} else {
for (q = 2; q < x; q++) {
if (x % q == 0) {
ret = 0;
}
}
}
return ret;
}
|