Program do wyszukiwania binarnego liczby w tablicy i wyświetlania jej miejsca. Udało mi się takie coś:
#include <stdio.h>
void szukaj(int tab[], int liczba, int szukana)
{
int start=0;
int end=liczba-1;
int srodek;
do{
srodek=(start+end)/2;
if (tab[srodek]==szukana){
printf ("Podana liczba znajduje sie na pozycji: %d\n", srodek+1);
break;
}
else{
if(szukana<tab[srodek])
end=srodek-1;
else
start=srodek+1;
}
if (start>end) printf("Nie znaleziono podanej liczby\n");
}while (start<=end);
}
int main(){
int tab[]={47,33,31,29,28,26,24,23,20,19,18,12,10,9,7,6,5,2,1};
int a,i;
int b=sizeof(tab)/sizeof(int);
for(i=0; i<b; i++)
{
printf("%-3d",tab);
}
printf("\nWprowadz liczbe do sprawdzenia:\n");
scanf("%d", &a);
szukaj(tab,b,a);
return 0;
}
Ale zastanawiam się jak zmienić liczby na losowe i zrobić to bez używania rozmiaru tablicy. Drugi problem to po uruchomieniu programu na górze przed 1 poleceniem wyświetla jakieś liczby.