【发布时间】:2020-11-22 01:19:25
【问题描述】:
我正在尝试编写一个程序来列出给定参数中的所有素数。我的终端不会输出任何东西,即使我在程序末尾有打印功能。
您能否让我知道 x 和 g 变量是否是必要的,或者我是否可以坚持使用 i。
这是我的代码:
#include <stdio.h>
#define MAX_SIZE 1000
int main(){
int N , i, x, g, a[MAX_SIZE];
scanf("%d", &N);
a[0] = 2;
for (i = 1; i < N - 2; i++)
{
a[i] = (a[i-1]) + 1;
}
for (x = 0; x < N - 2; x++){
for (i = 1; i < N - 2; i++){
if (a[i] % a[x] == 0) {
for (g = i; g < N - 2; g++){
a[g] = a[g+1];
}
}
}
}
for (i = 0; i < N - 2; i++){
printf("%d \n", a[i]);
}
return 0;
}
【问题讨论】:
-
如果你在没有任何浮点数学运算的代码中得到一个浮点异常,它只能意味着一件事:除以 0。
-
算法不是很了解,错误原因是
a[i] % a[x]处被零除。 -
你应该使用缩进让你的代码更容易阅读。