#include <cstdlib>
#include <iostream>
#include <time.h>
#include <fstream.h>
# define MAX 20
using namespace std;
int binarne(int poczatek, int koniec,int tab[], int szukany)
{ if(poczatek<=koniec)
{ int srodek = (poczatek +koniec)/2;
if(tab[srodek]==szukany)
return srodek;
if(tab[srodek]>szukany)
return binarne(poczatek,srodek,tab,szukany);
else
return binarne(srodek+1,koniec,tab,szukany);
}
return -1;
}
int main(void)
{
int tab[MAX];
int i,j;
srand((unsigned) time(NULL));
i=0;
do{ j=rand()%100;
if(j%2==0) {tab[i]=j;
cout<<tab[i]<<" ";
i++;}}
while(i<MAX);
cout<<endl;
int liczba;
i=0;
while(i<MAX) {
liczba=tab[i];
j=i-1;
while(j>=0 && tab[j]>liczba) {
tab[j+1]=tab[j];
j--;
}
tab[j+1]=liczba;
i++;}
cout<<endl;
ofstream plik("j:\\program100procent.txt");
for(int a=0;a<MAX;a++)
{
cout<<tab[a]<<" ";
plik<<tab[a]<<" ";
}
plik.close();
int szuk;
cout<<endl<<"podaj liczbe jaka chcesz znalezc ";
cin>>szuk;
if(binarne(0,MAX,tab,szuk)==-1)
cout<<"elementu nie ma w tablicy"<< endl;
else
cout<<"element jest w tablicy na pozycji: "<< binarne(0,MAX,tab,szuk)+1<< endl;
cin.ignore();
getchar();
return 0;
}
// Ogólnie to program działa ok tylko przy wyszukiwaniu binarnym gdy podajemy liczbe której nie ma w tablicy program automatycznie się zawiesza , a powinien wyswietic komunikat ze "elementu nie ma w tablivy". Próbowałem już to zmieniac na rózne sposoby , ale problem nadal jest i bardzo prosze o pomoc w tym problemie. Dziekuje