После ввода теста программа сразу заканчивается не выводя результат

Задача:

Удалить из матрицы А (6х9) все строки, содержащие единицы, передвинув на их место оставшиеся строки без нарушения порядка их следования.

После ввода теста программа сразу заканчивается не выводя результат (тот же массив с удалёнными строками, в которых были "1")

Тест:
2 0 1 0 0 0 0 0 0
3 0 0 0 0 0 0 0 0
4 0 0 0 0 0 0 0 0
5 0 0 0 0 1 0 0 0
6 0 0 0 0 0 0 0 0
7 0 0 0 0 0 0 0 0

Ожидал:
3 0 0 0 0 0 0 0 0
4 0 0 0 0 0 0 0 0
6 0 0 0 0 0 0 0 0
7 0 0 0 0 0 0 0 0
#include <stdio.h>
#include <stdlib.h>

int main()
{
   int **A, t, ca;
   ca = 0;

   A = malloc(6 * sizeof(int *));
   for (int i = 0; i < 6; i++)
       {A[i] = (int*)malloc(9 * sizeof(int));
       for (int l = 0; l < 9; l++)
           scanf("%d", &A[i][l]);}

   for (int i = 0; i < 6; i++)
   {
       t = 0;
       for (int l = 0; l < 9; l++)
           if(A[i][l] = 1)
               t++;
       if (t != 0)
       {
           for(int j = i; j<6; j++)
               for (int k = 0; k<9; k++)
               {
                   A[j][k] = A[j+1][k];
                   ca++;
               }
       }
   }

   for (int i = 0; i < (6-ca); i++)
       for (int l = 0; l < 9; l++)
       printf("%d", A[i][l]);

   return 0;
}

Ответы (1 шт):

Автор решения: Igor
ca++;

-- это что делает? И чему равно ca, когда Вы его используете в i < (6-ca)?


Куда показывает A[j+1], когда j равно 5?

→ Ссылка