#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