究竟是哪里出了问题???
#include<iostream>
#include<cstring>
using namespace std;
int way[105][105],n=-1,c=1;
void Floyd()
{
for(int k = 1;k <= n;k++)
for(int i = 1;i<=n;i++)
for(int j = 1;j<=n;j++)
way[i][j] = min(way[i][j],way[i][k]+way[k][j]);
}
int main()
{
memset(way,0x3f,sizeof(way));
int a,b;
while(true)
{
scanf("%d%d",&a,&b);
if(a==0&&b==0)
break;
way[a][b]=1;
n=max(n,max(a,b));
while(true)
{
scanf("%d%d",&a,&b);
if(a==0&&b==0) break;
n=max(n,max(a,b));
way[a][b]=1;
}
Floyd();
double num=0,t=0;
for(int i =1;i<=n;i++)
for(int j = 1;j<=n;j++)
{
if(i!=j&&way[i][j]<0x3f)
{
t=t+way[i][j];
num++;
}
}
printf("Case %d: average length between pages = %.3f clicks\n", c++, t/num);
memset(way,0x3f,sizeof(way));
t=num=0;
}
return 0;
}