所以我正在做这作为大学练习。我有这个矩阵:
-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 i = 0; i < count; ++i)
{
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");
}
}
提前致谢。