چرا این الگوریتم فلوید اجرا نمیشه ؟
سلام
یه الگوریتم فلوید دارم که خودم داخل برنامه کدها رو دادم بهش
قراره که بهترین مسیر رو برام چاپ کنه ولی خطا میده
کد:
#include<iostream.h>
void path(int p[][10],int i,int j){
if(p[i][j]!=0)
{
path(p,i,p[i][j]);
cout<<p[i][j]<<'\t';
path(p,p[i][j],j);
}
}
void main(){
int p[10][10],n=4,i,j,k;
int d[4][4]={{0,5,-1,-1},{50,0,15,5},{30,-1,0,15},{15,-1,5,0}};
/*cout<<"Enter Destination= ";
cin>>n;*/
for(i=0;i<n;i++)
for(j=0;j<n;j++)
p[i][j]=0;
/*cout<<"D0= "<<endl;
for(i=0;i<n;i++)
for(j=0;j<n;j++){
cin>>d[i][j];
if(d[i][j]==-1)
d[i][j]=32000;
}*/
for(k=0;k<n;k++)
for(i=0;i<n;i++)
for(j=0;j<n;j++){
if(d[i][j]>(d[i][k]+d[k][j])){
d[i][j]=d[i][k]+d[k][j];
p[i][j]=k+1;}
}
cout<<"Final Shortest path: D"<<n<<" = "<<endl;
for(i=0;i<n;i++){
for(j=0;j<n;j++)
cout<<d[i][j]<<'\t';
cout<<endl;
}
cout<<"p[][]= "<<endl;
for(i=0;i<n;i++){
for(j=0;j<n;j++)
cout<<p[i][j]<<'\t';
cout<<endl;
}
cout<<"enter i and j: "<<endl;
cin>>i>>j;
path(p,i,j);
}
میشه یه نفر برام اصلاحش کنه ؟؟؟