Почему программа работает с бесконечным вводом при получении значений двумерной матрицы от пользователя - PullRequest
0 голосов
/ 17 октября 2019

Я пытался создать программу для реализации связанного списка Sparse Matrix и Multiply two Sparse matrix.

Допустим, пользователь выбирает измерения 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

1 Ответ

0 голосов
/ 17 октября 2019
for(j=0; i<n; j++)

должно быть:

for(j=0; j<n; j++)

В противном случае цикл никогда не завершится, поскольку i никогда не изменяется внутри внутреннего цикла.


ПРИМЕЧАНИЕ: Я такжеНастоятельно рекомендуем добавить проверку, чтобы убедиться, что m и n меньше 10, иначе программа завершится сбоем.

...