C++ 当从用户处获取2D矩阵的值时,为什么程序以无休止的输入运行

C++ 当从用户处获取2D矩阵的值时,为什么程序以无休止的输入运行,c++,matrix,visual-c++,user-input,sparse-matrix,C++,Matrix,Visual C++,User Input,Sparse Matrix,我试图做一个程序,使一个链表实现稀疏矩阵,并乘以两个稀疏矩阵 假设用户选择维度2*2,那么用户将输入4个矩阵值。但是当我运行这个程序时,它需要用户无休止的输入。我不知道为什么。(这是错误) 然而,当我试图在声明时直接初始化矩阵的值而不是接受输入时,代码可以工作,但我希望用户输入矩阵的值。 我尝试在代码块和VS代码上运行此代码。这两个程序的工作原理相同 是否存在逻辑错误 int m=0,n=0; int i,j; int sp

我试图做一个程序,使一个链表实现稀疏矩阵,并乘以两个稀疏矩阵

假设用户选择维度2*2,那么用户将输入4个矩阵值。但是当我运行这个程序时,它需要用户无休止的输入。我不知道为什么。(这是错误)

然而,当我试图在声明时直接初始化矩阵的值而不是接受输入时,代码可以工作,但我希望用户输入矩阵的值。 我尝试在代码块和VS代码上运行此代码。这两个程序的工作原理相同

是否存在逻辑错误

            int m=0,n=0;
            int i,j;
            int sparseMatric[10][10];

            cout<<"Enter the Dimentions of the Matrix A"<<endl;
            cin>>m>>n;

            cout<<endl<<"Enter The Values of Sparse Matrix A"<<endl;
            for(i=0; i<m; i++)
                for(j=0; i<n; j++)
                    cin>>sparseMatric[i][j];        //whats wrong with input?

            Sparse_Matrix* start = NULL; 

            for (i = 0; i < m; i++) 
                for (j = 0; j < n; j++) 
                    if (sparseMatric[i][j] != 0) 
                        create_new_node(&start, sparseMatric[i][j], i, j); 
            .
            .
            .
             //code continues
intm=0,n=0;
int i,j;
int稀疏语义[10][10];
coutn;

cout
用于(j=0;iThanks,我简直不敢相信我在这样一个愚蠢的错误上浪费了4个多小时。这是一个很好的例子,说明了为什么一个字母的变量即使有意义也是危险的。如果
I
outer
j
inner
,那么这个错误就更难犯,也更容易发现。@user4581301我瘦。@user4581301k如果你有过类似的事情,与其说是这样,不如说是这样,更多的是要经常仔细检查你的工作。另外,一双新的眼睛通常可以帮助你发现需要花费你4个小时才能发现的事情:D。@Fall没问题。这就是我们来这里的目的。有时候,新的眼睛或新的视角可以更容易地捕捉到事情。
for(j=0; i<n; j++)
for(j=0; j<n; j++)