Так что я делаю это как упражнение в колледже. У меня есть эта матрица:
-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 и вы, ребята, можете помочь.