|
发表于 2022-9-14 21:04:32
|
显示全部楼层
问题在于误用逗号表达式
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;
- }
复制代码 |
|