我正在编写一个程序来输出矩阵的转置。当我在矩形或列数多于矩形的矩阵上使用它时,该程序起作用,但当我尝试在矩阵上使用行数多于列的矩阵时,该程序会产生错误的输出。在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