c++ - 代码运行后立即崩溃

标签 c++

即使输入最少 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();
    }
}

我解决了你所有的问题。它仍然没有返回任何错误并且仍然崩溃。

最佳答案

是什么让您认为您可以做到这一点?

vector<int> a;
a[1]=2;

关于c++ - 代码运行后立即崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4741905/

相关文章:

c++ - 变量 [string] 周围的堆栈已损坏 c++

c++ - C++标准库中std::sort()的时间复杂度是多少?

c++ - 平均值计算不正确

c++ - 为多平台编译时围绕未定义行为的混淆

android - cc1plus : error: -Werror=literal-suffix: no option -Wliteral-suffix

c++ - 指针似乎无缘无故地重新设置

c++ - 重新配置 C++ 代码以处理 `warning: unsequenced modification and access to parameter`

c++ - 在当前进程中 Hook API 调用?

c++ - Boost.Spirit 编译错误

c++ - 如何用特定符号查找和替换字符串中的所有字符 C++