我正在尝试一种基于度量的算法,称为出租车度量。然后我的目标是创建一个简单的例子,你有一个简单的 3x3 矩阵,在第一个位置你有 1。从中计算其他位置的距离,如下所示:
1 2 3
2 3 4
3 4 5
为此,我创建了以下代码:
#include <stdio.h>
#include <stdlib.h>
int main ()
{
int matrix[3][3]={1,0,0,0,0,0,0,0,0}, i, j;
for ( i=0; i<3; i++)
{
for( j=0; j<3; j++)
matrix[i][j]= abs(i-1)+ abs (j-1)+1;//taxicab algorithm
printf("%d ",matrix[i][j]);//prints the matrix
printf("\n");
}
return 0;
}
但是,输出是
0
0
3
我不知道为什么会这样。为什么它只打印第一列???为什么1变成0?