小女子求助
这是一个求最小生成树的代码,先输入结点个数,再输入一个方阵,表示这些结点之间的距离,但是经过系统评测是错误的,有大牛帮忙一下小女子吗#include<stdio.h>
int a[1002][1002];
int b[1002];
int c[1002];
main()
{
int n,i,j,l,k,m,p,min,sum;
while((scanf("%d",&n))!=EOF)
{
sum=0;
for(i=1;i<=n;i++)
{
b[i]=0;
c[i]=0;
for(j=1;j<=n;j++)
scanf("%d",&a[i][j]);
}
m=1;
c[1]=1;
b[1]=1;
for(i=1;i<=n-1;i++)
{
min=200;
if(i<=n/2)
{
for(j=1;j<=m;j++)
{
j=c[j];
for(k=1;k<=n;k++)
if(b[k]==0 && j!=k && a[j][k]<min)
{
min=a[j][k];
p=k;
}
}
sum=sum+min;
b[p]=1;
c[m+1]=p;
m++;
}
else
{
for(l=1;l<=n;l++)
if(b[l]==0)
{
for(k=1;k<=m;k++)
{
k=c[k];
if(a[l][k]<min && l!=k)
{
min=a[l][k];
p=l;
}
}
}
sum=sum+min;
b[p]=1;
c[m+1]=p;
m++;
}
}
printf("%d\n",sum);
}
return 0;
}