即使在最少的10個數字輸入,我也沒有錯誤,但我的代碼在運行時立即崩潰。我還想知道,如果我有一個類似於我已經問過的另一個問題的問題,但是又出現了另一個新問題,我該怎麼辦?代碼在運行後立即崩潰
#include <iostream>
#include <cmath>
#include <fstream>
#include <cstdlib>
#include <vector>
using namespace std;
int primer(int max);
int main()
{
primer(5);
system("pause");
return 0;
}
int primer(int max){
vector<int> a;
a[1]=2;
for (int i=2;i<=max;i++){
bool prime=true;
for (int ii=0;ii<a.size();ii++) {
if (i/a[ii]==floor(i/a[ii])) {
prime=false;
}
}
if (prime==true) {
a.push_back(i);
}
}
for (int iii=0;iii<=a.size();iii++) {
cout << a[iii] << endl;
}
}
我沒有得到任何錯誤,但編譯後的代碼立即崩潰。 我改成了
#include <iostream>
#include <cmath>
#include <fstream>
#include <cstdlib>
#include <vector>
using namespace std;
int primer(int max);
int main()
{
primer(5);
system("pause");
return 0;
}
int primer(int max){
vector<int> a;
a.push_back(2);
for (double i=2;i<=max;i++){
bool prime=true;
for (int ii=0;ii<a.size();ii++) {
if (i/a[ii]==floor(i/a[ii])) {
prime=false;
}
}
if (prime) {
a.push_back(i);
}
}
for (int iii=0;iii<=a.size();iii++) {
cout << a[iii] << endl;
return a.size();
}
}
我解決了所有的你的問題。它仍然沒有返回錯誤,仍然崩潰。
你需要發佈你得到的錯誤。你也不需要使用像`i`,`ii`和`iii`這樣的變量,尤其是所有代碼都是相同的。 – Falmarri 2011-01-19 23:16:38
您是否嘗試調試它? – 2011-01-19 23:17:49