请问由3×3数字排列如何得出距离从至矩阵,附图如下?

图片说明
请帮帮我,万分感谢!

如果问题得到解决,请点我回答右边的采纳和向上的箭头,谢谢

// Q717250.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"

#include "stdio.h"
#define N 3

int find(int * arr, int n)
{
    for (int i = 0; i < N * N; i++)
    {
        if (arr[i] == n) return i;
    }
}

int main()
{
    int arr[N][N];
    for (int i = 0; i < N; i++)
        for (int j = 0; j < N; j++)
            scanf("%d", &arr[i][j]);
    for (int j = -1; j < N * N; j++)
    {
        if (j == -1) 
            printf("\t");
        else
            printf("%d\t", j + 1);
    }
    printf("\n");
    for (int i = 0; i < N * N; i++)
    {
        printf("%d\t", i + 1);
        for (int j = 0; j < N * N; j++)
        {
            int a = find(arr[0], i + 1);
            int b = find(arr[0], j + 1);
            int d = (a % N > b % N) ? (a % N - b % N) : (b % N - a % N);
            d += (a > b) ? (a / N - b / N) : (b / N - a / N);
            printf("%d\t", d);
        }
        printf("\n");
    }
    return 0;
}

图片说明