mam problem.polega on na tym ze chce wybrac z tablicy tabl3d najmniejsze elementy. jednakze jezeli wybore element minimalny z rozmiaru [p] to chce aby [o] bylo równe p i znow szukalo minimalnego elementu tablicy. problem w tym ze jesli o raz przyjmnie jakąś wartość to drugi raz juz nie moze.jak to zrobic?! oto kod
#include<iostream>
#include<fstream>
#include<conio.h>
#include<math.h>
using namespace std;
int n,v,n2=100,score=0;
int tablwynik[1000][1000], tablwynikzocz[1000][1000], tabbest[1000];
int tabl3d[1000][1000][100];
int lala[1000],lala2[1000];
int main()
{
int tablica[100],i=0;
ifstream odczyt("ok09_01.txt");
while(!odczyt.eof())
{
odczyt>>tablica[i];//wczytanie pliku do tablicy
i++;
}
for(int a=0; a<i-1; a++)
{
cout << tablica[a]<<endl;
}
cout << endl;
cout << endl;
n = tablica[0];//przypisanie do stalej n
v = tablica[1];//przypisanie do stalej v
cout << "tablica x" <<endl;
int tablicaX[n];//tablica z wspolrzednymi x
for(int j=0;j<n;j++)
{
tablicaX[j] = tablica[2+(9*j)];
cout<<tablicaX[j]<<endl;
}
cout << "tablica y" <<endl;
int tablicaY[n];//tablica z wspolrzednymi y
for(int j=0;j<n;j++)
{
tablicaY[j] = tablica[3+(9*j)];
cout<<tablicaY[j]<<endl;
}
cout<<endl;
int tablicaT[n][7];
for (int i=0;i<n;i++)
{
for (int j=0;j<7;j++)
{
tablicaT[i][j]=tablica[(4+(j+(i*9)))];
cout<<tablicaT[i][j];
}
cout<<endl;
}
cout<<endl;
cout<<tablicaT[3][6]<<endl;
cout<<endl;
//------------------------------------------------------------------------------
//heurystyka
double potx,poty;
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
potx=(tablicaX[i]*tablicaX[i])-(2*tablicaX[i]*tablicaX[j])+(tablicaX[j]*tablicaX[j]);
poty=(tablicaY[i]*tablicaY[i])-(2*tablicaY[i]*tablicaY[j])+(tablicaY[j]*tablicaY[j]);
tablwynik[i][j]= ceil(ceil(sqrt(potx + poty))/v);
//tablwynikzocz[i][j] = tablwynik[i][j] + tablicaT[i][j];
cout<<tablwynik[i][j]<<" " ;
//cout << potx<<" " << poty<<endl;
}
cout<<endl;
}
cout<<endl;
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
for(int k=0;k<n;k++)
{
potx=(tablicaX[i]*tablicaX[i])-(2*tablicaX[i]*tablicaX[j])+(tablicaX[j]*tablicaX[j]);
poty=(tablicaY[i]*tablicaY[i])-(2*tablicaY[i]*tablicaY[j])+(tablicaY[j]*tablicaY[j]);
//
if(k==0)tabl3d[i][j][k] = tablicaT[i][0] ;
else
{
tabl3d[i][j][k]= ceil(ceil(sqrt(potx + poty))/v)+tablicaT[j][k];}//+tablicaT[0][0];}
cout<<tabl3d[i][j][k]<<" ";
}
cout<<endl;
//tablica[i][j][k] = tablica[i][0];
}
cout<<endl;
}
int sprawdz = tabl3d[4][0][1] + tabl3d[0][2][2] + tabl3d[2][1][3] + tabl3d[1][5][4]+tabl3d[5][6][5]+tabl3d[6][3][6]+ tablicaT[4][0];
cout<<sprawdz;
cout<<endl;
int min,o=0,min2,min3,max;
min = tabl3d[0][1][1];
int tabind[20],tabrez[100],tabo[100]= {0};
int index=0,pom1=0,pom2=0,k=1,per;
int p=0;
for(k;k<n;)
{
//min=tabl3d[o][0][k];
min=40;
for(p=0;p<n;p++)
{
if (o!=p )
{
if(tabl3d[o][p][k]<min){min=tabl3d[o][p][k];index=p;}
//}
tabind[k]=index;
tabrez[k]=min;
}
cout<<endl;
cout<<min<<" "<<index;
}
o=tabind[k];
k++;
}
cout<<endl;
cout<<endl;
for (int i=1;i<n;i++)
cout<<tabind[i]<<" "<<tabrez[i]<<" ";
getch();
}