#include <stdio.h>
#include <iostream>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
#define max_value 20000
#define min_tab 5
#define max_tab 10
#define min_width 20
#define max_width 200
using namespace std;
int **graph_table;
int size;
int min_Values(int a, int b)
{
 if(a<=b)
  return a;
 else
  return b;
}
bool  random_Wrong()
{
  int value;
  value=rand()%10;
  if(value<3)
   return true;
  else
   return false;
}
void init_Values()
{
 int i,j,k;
 size=min_tab+rand()%(max_tab-min_tab);
 graph_table=new int*[size];
 for(i=0;i<size;i++)
  graph_table[i]=new int[size];
 for(i=0;i<size;i++)
 {
  for(j=0;j<size;j++)
  {
   if(random_Wrong())
   {
    graph_table[i][j]=min_width+rand()%(max_width-min_width);
   }
   else
   {
    graph_table[i][j]=max_value;
   }
  }
 }
}
 int _tmain(int argc, _TCHAR* argv[])
{
  int i,j,k;
  srand(time(NULL));
  init_Values();
  for(i=0;i<size;i++)
  for(j=0;j<size;j++)
   for(k=0;k<size;k++)
    graph_table[j][k]=min_Values(graph_table[j][k],graph_table[j][i]+graph_table[i][k]);
  cout<<"Size = "<<size<<endl;
  for(i=0;i<size;i++)
   for(j=0;j<size;j++)
   {
    if(graph_table[i][j]==max_value)
    {
     cout<<i+1<<"*---*>>"<<j+1<<" *is not connect*"<<endl;
    }
    else
  if(i!=j)
   cout<<i+1<<"*---*>>"<<j+1<<"=="<<graph_table[i][j]<<endl;
   }
  for(i=0;i<size;i++)
   delete[] graph_table[i];
  delete []graph_table;
 getch();
 return 0;
}
Brak komentarzy:
Prześlij komentarz