После ввода теста программа сразу заканчивается не выводя результат
Задача:
Удалить из матрицы А (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?