【发布时间】:2011-01-19 23:15:13
【问题描述】:
即使输入最少 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();
}
}
我解决了你所有的问题。它仍然没有返回错误并且仍然崩溃。
【问题讨论】:
-
你试过调试它吗?
-
没有编译器错误? 真的???
-
如果你遇到绊脚石,一个接一个这样。你需要读一本书。 stackoverflow.com/questions/388242/…
-
@TimeCoder:请将此视为建设性的批评,正如其本意。问题不在于您发布了许多相关的帖子。没关系。问题是您似乎对 C++ 没有基本的了解,并且您正试图通过在 SO 上发帖从头开始学习它。 “在 21 分钟内学会 C++ 编程”不是吗?我们希望您了解该语言。至少是基础知识。
-
@TimeCoder “我解决了你所有的问题。” - 不,你没有。
标签: c++