Это мое кодирование, но я не знаю, как найти номер пути длины между двумя вершинами.
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <math.h>
#define TRUE 1
#define FALSE 0
void main()
{
int x;
int y;
int n;
int l;
int a;
int b;
int length;
char vertex='a';
int num[50][50];
printf("enter the number of vertices : ");
scanf("%d",&n);
//int num[n][n];
for(x=0;x<n;x++)
{
for(y=0;y<n;y++)
{
printf("[%c,%c] : ",vertex+x,vertex+y);
scanf("%d",&num[x][y]);
}
}
printf("\n");
printf("Adjacency matrix :\n");
for(x=0;x<n;x++)
{
for(y=0;y<n;y++)
printf("%d\t",num[x][y]);
printf("\n");
}
printf("Enter a positive integer for length: ");
scanf("%d",&length);
length=sqrt(length);
printf("Multiplication matrix :\n");
for(l=0;l<=length;l++)
{
for(x=0;x<n;x++)
{
for(y=0;y<n;y++)
num[x][y]=(num[x][y])*(num[y][x]);
num[x][y]= num[x][y]+ num[y][x];
}
}
printf("\n");
for(x=0;x<n;x++)
{
for(y=0;y<n;y++)
printf("%d\t",num[x][y]);
printf("\n");
}
printf("\nPlease insert your starting point: ");
scanf("%d",&a);
printf("\nPlease insert your ending point: ");
scanf("%d",&b);
a=x-1;
b=y-1;
//printf("\nThe number of path from %d to %d: %d",a,b,num[a][b]);
printf("\nThe number of path from %d to %d: %d",a,b,num[a][b]);
getch();
//return 0;
}