2015-03-02 48 views
0

調試錯誤。 R6010中止已被稱爲()

#include "../../../std_lib_facilities.h"

int main() {

vector <int> nmb; vector <int> rep; vector <int> prt; int flag = 0; int temp = 0; int br = 0; int max = -1; int ind = 0; cout << "Enter as much integers as you like\n"; while (cin >> temp) { if (nmb.size() == 0) { nmb.push_back(temp); prt.push_back(temp); ++rep[br]; ++br; } else { for (int i = 0; i < nmb.size(); ++i) { if (temp == nmb[i]) { ++rep[i]; flag = 1; } } if (flag == 0) { nmb.push_back(temp); prt.push_back(temp); ++rep[br]; ++br; } else if (flag == 1) { flag = 0; prt.push_back(temp); } } } cout << "You've entered numbers\n"; for (int j = 0; j < prt.size(); ++j) cout << prt[j] << " "; for (int k = 0; k < rep.size(); ++k) if (rep[k] > max) { max = rep[k]; ind = k; } cout << "\n\nMost repeated number is " << nmb[ind] << endl;}

我的任務是寫最多次輸入的數字。我知道這可能不是最好的想法,但這是我第一次「好」,所以我就這樣做了。它編譯得很好,但運行時會給我那個標題的錯誤。我在幾個地方嘗試過cout < <,似乎這個問題從while循環開始就開始了。

+1

當你這樣做時'rep'爲空:'++ rep [br];'。 – juanchopanza 2015-03-02 22:03:58

+0

是不是默認設置爲0?我以爲我只是設置代表[0] = 0代表[0] = 1? – Luka 2015-03-02 22:05:53

+1

如果'rep'爲空,'rep [0]'不是一件事情。 – juanchopanza 2015-03-02 22:06:35

回答

1

您嘗試訪問rep的第一個元素,它是一個空向量。

在訪問它們之前,您必須實際添加元素。現在你正在閱讀和寫作不屬於你的記憶。