我正在編寫一個程序來輸出矩陣的轉置。當我在矩形或列數多於矩形的矩陣上使用它時,該程序起作用,但當我嘗試在矩陣上使用行數多於列的矩陣時,該程序會產生錯誤的輸出。在C++中計數錯誤
該程序的傑作是它將數字讀入一個矢量,然後將該矢量推到2D矢量data
上。在這部分代碼工作正常(據我可以告訴),我認爲錯誤是在這些循環
if (data[0].size() < data.size()) // number of columns < number of rows BREAKS
{ // test52 gets here
for(size_t i=0; i<data[0].size(); ++i) // loops over the number of rows
{
for(size_t j=0; j<data.size(); ++j) // loops over the number of columns (the number of entries in each row)
{
cout << data[j][i] << "\t";
}
cout << endl;
}
}
如果我與矩陣
1,2
3,4
5,6
7,8
9,10
運行此輸出是1 3 5 7 9
,所以它錯過了第二列。
我在編譯和運行時沒有遇到任何錯誤。我一直盯着代碼一個多小時,對於我的生活,我無法弄清楚什麼是錯誤的。
任何幫助,將不勝感激。
編輯
對不起大家,程序工作正常。問題是我試圖讓程序讀取錯誤格式的文本文件(我忘記了逗號)!
謝謝你的幫助。
在調試器中運行,逐行執行代碼,觀察變量(特別是'data [i]'與'data [j]')。 – 2014-11-25 12:13:14