#include<iostream>
#include<stdio.h>
#define max 20
#define infinity 65535
typedef struct {
int vertax[max];
int table[max][max];
int ver, edg;
}graph;
void creategraph(graph* t)
{
int i, j;
int val;
printf("请输入顶点数和边数(输入格式为:顶点数,边数):\n");
scanf("%d,%d", &t->ver,&t->edg);
for (i = 1; i <= t->ver; i++);
{t->vertax[i] = i; }
for (i = 1; i <= t->ver; i++)
for (j = 1; j <= t->ver; j++)
{
if (i == j)
t->table[i][j] = 0;
else
t->table[i][j] = t->table[j][i] = infinity;
}
printf("请输入相应边权值(输入格式为:i,j,val):\n");
for(int k=1;k<=t->edg;k++){
scanf("%d,%d,%d", &i, &j, &t->table[i][j]);
}
}
void shortpath(graph* d)
{
int i, j, k;
int dis[20][20] = { 0 };
for(i=1;i<=d->ver;i++)
for (j = 1; j <=d->ver; j++)
{
dis[i][j]=d->table[i][j];
}
for (k = 1; k <=d->ver; k++)
for (i = 1; i <= d->ver; i++)
for (j = 1; j <= d->ver; j++)
if (dis[i][k] + dis[k][j] < dis[i][j])
dis[i][j] = dis[i][k] + dis[k][j];
printf("请输入点:");
scanf("%d", &i);
for (j = 1; j <= d->ver; j++)
{
printf("%d到%d的最小值为%d\n",i,j, dis[i][j]);
}
}
int main( )
{
graph gt;
creategraph(>);
shortpath(>);
return 0;
}
想知道哪里错了,我觉得没有问题……麻烦解答一下