我有一个生成素数的程序。当我想要前 100 和 200 个素数时,此代码工作正常,但每当我使用超过 300 的总值时,就会出现浮点异常。问题似乎出在数组中,但我不明白发生了什么。
#include<stdio.h>
int main()
{
int total = 500;
int primes[total];
primes[0] = 2;
int max = 1;
int current = 3;
int index = 0;
printf("%d\n",2);
while(max != total)
{
for(index = 0; index <= max + 1; index++)
{
if(index == max + 1){
primes[index] = current;
printf("%d\n",current);
max = max + 1;
current = current + 1;
break;
} else {
if(current % primes[index] == 0){
current = current + 1;
break;
}
}
}
}
}