سلام
این برنامه برای گرفتن نودهای یک گراف و یه سری کار روشه ولی وقتی اجرا میکنم 13 تا erorمیده همشم مال تابع راشاله . هر چی نگاه میکنم مشکلشو نمیفهم . اگه کسی میتونه لطفا بگه چی کار کنم.
. اگه کسی میتونه لطفا بگه چی کار کنم.
ممنون
 
#include <iostream.h>
#define m 10
/////////////////////////////////////////////////
class graph {
private:
 int neiber[m][m];
 int a[m][m];
 int n;
 int degrein[m];
 int degreout[m];
 int dist[m];
 int length[m][m];
 bool s[m];
 int min[m][m];
    int shortest[m*m];
     int poosha[m][m];
public:
 graph(int v)
 {n=v;
 }
 void grapharay();
    int degreeout(int );
     int degreein(int v);
     int*   findneiber(int );
  void shortestpath(int , int );
  int choose();
  void allength(int n);
  void perim(int v[10][10], int g);
  void sort(int*,int);
  
  void rashal();
};
///////////////////////////////////////////////////////
void graph ::grapharay()
{//cout<<"enter the number of node:\n";
// cin>>n;
 for(int i=0;i<n;i++)
 { for (int j=0;j<n;j++)
  {cout<<"if  is the way from node "<<i<<"to node "<<j<<" enter  1 else enter 0\n";
         cin>>a[i][j];
   if(a[i][j]==0)length[i][j]=1000;
   else
   {cout<<"enter lenght:\n";
   cin>>length[i][j];}
  }
 }
};
//////////////////////////////////////////////////////
int graph ::degreeout(int v)
{       for(int i=0;i<n;i++)
          degreout[v]+=a[v][i];
        return degreout[v];
};
////////////////////////////////////////////////////
int graph ::degreein(int v)
{       for(int j=0;j<n;j++)
          degrein[v]+=a[j][v];
        return degrein[v];
};
//////////////////////////////////////////////////////
int*   graph ::findneiber(int v)
{int j=0;
 for(int i=0;i<n;i++)
 {    if(a[v][i]==1)
 {neiber[v][j]=i;
 j++;
 }
 }
return neiber[v];
};
//////////////////////////////////////////////////////
int graph::choose()
 {int j=0;
 if(j<n)
  return j++;
 }
;
////////////////////////////////////////////////////
void graph ::shortestpath(int n, int v)
 {    for(int i=0;i<n;i++)
  {s[i]=false;
      dist[i]=length[v][i];
  }
  s[v]=true;
  dist[v]=0;
  for(i=0;i<n-2;i++)
  {int u=choose();
  s[u]=true;
  for(int w=0;w<n;w++)
   if(!s[w])
    if(dist[u]+length[u][w]<dist[w])
     dist[w]=dist[u]+length[u][w];
  }
};
/////////////////////////////////////////////////
void graph ::allength(int n)
{      
 for(int i=0;i<n;i++)
  for(int j=0;j<n;j++)
   min[i][j]=length[i][j];
 for(int k=0;k<n;k++)
      for(i=0;i<n;i++)
    for(int j=0;j<n;j++)
     if((min[i][k]+min[k][j])<min[i][j])min[i][j]=min[i][k]+min[k][j];
};
////////////////////////////////////////////////
void graph ::perim(int v[10][10], int g)
{
 int f[10][10]={0};
 int sm=100;
 int i=0;
 int j=0;
 int y=0;
 for(i=0;i<g;i++){
  for(j=0;j<i;j++)
   if((v[i][j]<sm) && (v[i][j]!=0)){
    f[i][j]=1;
    f[j][i]=1;
    y++;
   }
 }
 sm=100;
 for(int k=0;k<g;k++){
  if((v[i][k]<sm) && (v[i][k]!=0))
     sm=v[i][k];
 }
};
/////////////////////////////////////////////
 void graph ::rashal()
 {int poosha[n][n]={0};
 /////////////////////////
 for(int g=0;g<n;g++)
 for(int h=0;h<n;h++)
      poosha[g][h]=0;  
///////////////////////////
  int yal=n-1;
  int d=0;
 int k=0;
 int *test;
 for(int i=0; i<n;i++)
 { for(int j=0;j<n;j++)
 {if(length[i][j]!=1000)
 {test=new int;
  test[k]=length[i][j];
  k++;}
   
   
 }
   
 }
sort(test,k);
if(test[k]<n-1)
cout<<"derekht hamband nist\n";
else{
 for(int m=0;m<yal;m++)
 {for(int i=0;i<n;i++)
    for(int j=0;j<n;j++)
    if(test[d]==length[i][j] && poosha[i][j]=0)
  poosha[i][j]=1;}
     
 
}
////chp arayeh derekht poosha;
cout<<"arayeh derakhte poosha is:\n";
for(int s=0;s<n;s++)
cout<<"   "<<s<<"   ";
for(int a=0;a<n;a++)
{cout<<a<<"   ";
 for(int b=0;b<n;b++)
 {cout<<poosha[a][b]<<"   ";
     cout<<"\n";
 }
}
};
/////////////////////////////////////////////////// 
void graph ::sort ( int *arr , int n ) 
{ 
 int i , j ; 
int max , temp ; 
for ( i = n - 1 ; i > 0 ; i -- ) 
{ 
max = 0 ; 
for ( j = 1 ; j <= i ; j ++ ) 
if ( arr[ max ] < arr[ j ] ) 
max = j ; 
temp = arr[ i ] ; 
arr[ i ] = arr[ max ] ; 
arr[ max ] = temp ; 
} 
};
/////////////////////////////////////////
void main()
{graph g(3);
g.grapharay();
cout<<"darageh voroodi 1:"<<g.degreeout(1)<<"\n";
cout<<"darajeh khorooji 2"<<g.degreeout(2)<<"\n";
cout<<g.findneiber(2);
g.shortestpath(3,0);
}