Числа расширяются в матрице C - PullRequest
0 голосов
/ 09 апреля 2020

Так что я делаю это как упражнение в колледже. У меня есть эта матрица:

 -1  0  0  0 -1 -1 -1 -1 -1 -1
  0  0  0  0  0  1  1  1  1  1
 -1 -1  0  0  0  0 -1 -1 -1 -1
 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
 -1 -1 -1 -1 -1 -1 -1  0  0 -1
 -1 -1 -1 -1 -1 -1 -1  0 -1 -1

И мне нужно получить эту матрицу:

1 0 0 0 1 2 3 4 4 5
0 0 0 0 0 1 2 3 3 4
1 1 0 0 0 0 1 2 2 3
2 2 1 1 1 1 2 1 1 2
3 3 2 2 2 2 1 0 0 1
4 4 3 3 3 2 1 0 1 2

Это похоже на то, сколько времени занимает распространение нулей, если они расширяются только на 1 шаг за время в каждом направлении (вверх, вниз, влево, вправо, не по диагонали).

Я также должен добавить, что исходная матрица может быть любым числом строк и столбцов и что позиции чисел 0 и -1 случайны, учитывая которые соответствуют данным, которые я анализирую в данный момент.

Следует базовый код для этого конкретного примера.

int main()
{
    int abc[6][10]
    for (int i = 0; i < 6; ++i)
    {
        for (int j = 0; j < count; ++j)
        {
            abc[i][j] = -1;
        }
    }
    abc[0][1] = 0;
    abc[0][2] = 0;
    abc[0][3] = 0;
    abc[1][0] = 0;
    abc[1][1] = 0;
    abc[1][2] = 0;
    abc[1][3] = 0;
    abc[1][4] = 0;
    abc[2][2] = 0;
    abc[2][3] = 0;
    abc[2][4] = 0;
    abc[2][5] = 0;
    abc[4][7] = 0;
    abc[4][8] = 0;
    abc[5][7] = 0;

    //Code missing plz help

    for (int i = 0; i < 6; ++i)
    {
        for (int j = 0; j < 10; ++j)
        {
          printf("%d", abc[i][j]);
        }
    printf("\n");
    }
}

Заранее спасибо.

Редактировать: Как запрошенный в комментарии, я публикую это здесь, потому что после 2-х дней попыток я не смог придумать исправление и для моих попыток выполнить функцию, и, учитывая, что я уверен, это единственное, что отделяет меня между окончанием моего семестрового проекта На этой неделе я подумал, что inte rnet и вы, ребята, можете помочь.

...