求帮助。C语言C++根据二维数组中的数字,如何输出其距离矩阵?
希望各位能帮帮我!万分感谢!
2018-12-16 19:01
程序代码:#include <stdio.h>
int main( void )
{
// 已知条件
const unsigned input[] = { 9,2,5, 6,8,4, 3,1,7 };
// 计算出每个数所在的下标
size_t rc[9] = { 0 };
for( size_t i=0; i!=9; ++i )
rc[ input[i]-1 ] = i;
// 输出距离矩阵
for( size_t i=0; i!=81; ++i )
{
size_t a = rc[i/9];
size_t b = rc[i%9];
size_t dis = (a/3 < b/3 ? b/3-a/3 : a/3 - b/3)
+ (a%3 < b%3 ? b%3-a%3 : a%3 - b%3);
printf( "%zu%c", dis, " \n"[(i+1)%9==0] );
}
}
2018-12-17 10:26