此代碼在100000之前運行正常,但如果輸入1000000,則開始給出錯誤C++ 0xC0000094: Integer division by zero
。我相信這是關於浮點的東西。我嘗試了(/ fp:precise),(/ fp:strict),(/ fp:except)和(/ fp:except-)的所有組合,但沒有獲得肯定的結果。C++ 0xC0000094:零除以整數除
#include "stdafx.h"
#include "time.h"
#include "math.h"
#include "iostream"
#define unlikely(x)(x)
int main()
{
using namespace std;
begin:
int k;
cout<<"Please enter the nth prime you want: ";
cin>>k;
int cloc=clock();
int*p;p=new int [k];
int i,j,v,n=0;
for(p[0]=2,i=3;n<k-1;i+=2)
for(j=1;unlikely((v=p[j],pow(v,2)>i))?!(p[++n]=i):(i%v);++j);
cout <<"The "<<k<<"th prime is "<<p[n]<<"\nIt took me "<<clock()-cloc<<" milliseconds to find your prime.\n";
goto begin;
}
認真?!!!你能否格式化你的代碼,至少它是可讀的? – 2013-03-18 16:41:54
除以0會導致不確定的結果。也就是說,你不能用0來分割一個數字。(http://en.wikipedia.org/wiki/Division_by_zero) – MAA 2013-03-18 16:43:35
對不起,這是我如何保持它在控制檯。我希望現在更清楚。 @Mylleranton該操作與將某些事物歸零歸零無關。 – Flashbond 2013-03-18 16:47:31