C++斷點問題求解?

這是一道學校oj上的題,在我結束輸入Ctrl + c的時候就會觸發斷點

自己一直不明白為什麼,所以求解?(在codeblocks上就沒有斷點,在vs上就有)

我提交至oj顯示 wrong answer ,即第一組實驗用例就不正確,可是輸出明明是一樣的,不知道是不是斷點的原因。

——————————————————————————————————————————以下是題目描述和代碼:

(求請噴題主的代碼質量)

//因限制3000字,,全部代碼在回答中發出來

9.22更新:

先謝謝大家的回答啦~

在我改變代碼為

@Coldwings所說的意思後,,當輸入一組數據後,結束時還是會有斷點(自動結束),,我想問斷點是怎麼產生的。。


ctrl+c是用來殺掉進程的


以我以往多年混OJ的經驗,WA只是告訴你答案錯了,並不是告訴你「第一組答案錯了」。

從你的代碼來看,你的輸入數據都跟題目要求格式完全不同,有啥好看的?

題目要求第一行是讀「有多少小組測試數據」,你讀進來當了元素數量,還處理到EOF截止。

好好看看題如何?


ctrl+C本身就是向程序發送一個signal,VS的調試器會捕獲signal,中斷掉提示你一下,而codeblock運行時沒有調試器插入,就進入ctrl+C的默認處理程序,也就是退出程序

結束輸入應該打ctrl+z,也就是EOF進去


Ideone.com - ysmtVN

#include &
#include &
#include &
#include &
using namespace std;

int readInt()
{
int x = 0;
cin &>&> x;
return x;
}

vector& read()
{
vector& result(readInt());
for_each(result.begin(), result.end(),
[](int x) { cin &>&> x; });
return result;
}

int main() {
int cases = readInt();
for (int i = 0; i &< cases; ++i) { vector& a = read();
vector& b = read();

cout &<&< "Case #" &<&< i+1 &<&< ": "; set_intersection(a.begin(), a.end(), b.begin(), b.end(), ostream_iterator&(cout, " "));
cout &<&< " "; set_union(a.begin(), a.end(), b.begin(), b.end(), ostream_iterator&(cout, " "));
cout &<&< " "; set_difference(a.begin(), a.end(), b.begin(), b.end(), ostream_iterator&(cout, " "));
cout &<&< " "; set_difference(b.begin(), b.end(), a.begin(), a.end(), ostream_iterator&(cout, " "));
cout &<&< " "; } }


#include &
#include &
using namespace std;

class List {
public:
List(int size);
~List();
void ClearList();
bool ListEmpty();
int ListLength();
int LocateElem(long long int e);
void ListTraverse();
bool ListSort();
bool ListInsert(long long int e);
long long int GetElem(int i);
private:
long long int *m_pList;
int m_isize;
int m_iLength;
};

List::List(int size)
{
m_isize = size;
m_pList = new long long int[m_isize];
m_iLength = 0;
}

List::~List()
{
delete[]m_pList;
m_pList = NULL;
}

void List::ClearList()
{
m_iLength = 0;
}

bool List::ListEmpty()
{
if (m_iLength == 0){
return true;
}
else return false;
}

int List::ListLength()
{
return m_iLength;
}

int List::LocateElem(long long int e)
{
for (int i = 0; i &< m_iLength; i++) { if (m_pList[i] == e){ return i; } } return -1; } bool List::ListSort() { if (m_iLength &> 0) {
sort(m_pList, m_pList + m_iLength);
//排序
return true;
}
else return false;
}

void List::ListTraverse()
{
for (int i = 0; i &< m_iLength; i++){ if (i == 0) cout &<&< m_pList[i]; else cout &<&< " " &<&< m_pList[i]; } cout &<&< endl; } bool List::ListInsert(long long int e) { if (m_iLength &>= 0) {
m_pList[m_iLength] = e;
m_iLength++;
return true;
}
else return false;
}

long long int List::GetElem(int i)
{
return m_pList[i];
}

int main()
{
int ca;
List l1(30000), l2(30000), jiaoji(30000), binji(30000), chajiA(30000), chajiB(30000);
while (cin&>&>ca)
{
long long int elem1, elem2;
int len;

cin &>&> len;
for (int i = 0; i &< len; i++){ cin &>&> elem1;
l1.ListInsert(elem1);
}
cin &>&> len;
for (int i = 0; i &< len; i++){ cin &>&> elem2;
l2.ListInsert(elem2);
}

for (int i = 0; i &< l1.ListLength(); i++) { if (l2.LocateElem(l1.GetElem(i))!= -1) { //交集 jiaoji.ListInsert(l1.GetElem(i)); } else { //並集 binji = l2; binji.ListInsert(l1.GetElem(i)); //差集A chajiA.ListInsert(l1.GetElem(i)); } } //差集B for (int i = 0; i &< l2.ListLength(); i++) { if (l1.LocateElem(l2.GetElem(i)) == -1) { chajiB.ListInsert(l2.GetElem(i)); } } //排序 jiaoji.ListSort(); binji.ListSort(); chajiA.ListSort(); chajiB.ListSort(); cout &<&< "Case #" &<&< ca &<&< ":" &<&< endl; //輸出 jiaoji.ListTraverse(); binji.ListTraverse(); chajiA.ListTraverse(); chajiB.ListTraverse(); l1.ClearList(); l2.ClearList(); jiaoji.ClearList(); binji.ClearList(); chajiA.ClearList(); chajiB.ClearList(); } return 0; }

這是全部代碼


推薦閱讀:

camtasia studio錄完的文件為什麼導不進pr?
想在ASP.net中整合Bootstrap的LESS源碼,該怎麼做?
開機總是有一個彈窗 http://www.msftconnecttest.com/redirect ?
Visual Studio和Eclipse相比有哪些優缺點?

TAG:C | MicrosoftVisualStudio | 指針 | 軟體調試 |