- Katılım
- 2 Haziran 2020
- Mesajlar
- 5.470
- Makaleler
- 10
- Çözümler
- 84
Yaklaşık yarım saattir bakıyorum ama bir şey bulamadım. Sayılar dizisinin 3. indeksinden sonra çalışmıyor. Hatam nedir?
C:
#include <stdio.h>
#include <stdlib.h>
int binarySearch(int dizi[], int lower, int higher, int arananDeger)
{
while (lower <= higher)
{
int medium = lower + (higher - lower) / 2;
if (dizi[medium] == arananDeger)
return medium;
if (dizi[medium] < arananDeger)
lower = medium + 1;
else
higher = medium - 1;
}
return -1;
}
int main()
{
int sayilar[] = {1,7,9,78,-5,2}; //kendiniz degistirebilirsiniz.
int arananSayi;
int boyut = sizeof(sayilar) / sizeof(int);
while (1)
{
printf("Dizi icinde nerede oldugunu ogrenmek istediginiz sayiyi giriniz.\n");
scanf("%d", &arananSayi);
int aramaSonuc = binarySearch(sayilar, 0, boyut - 1, arananSayi);
if (aramaSonuc >= 0)
printf("Aradiginiiz sayi %d. indekstedir.\n", aramaSonuc);
else
printf("Aradiginiiz sayi bulunamadi.\n");
}
system("pause");
return 0;
}
Son düzenleyen: Moderatör: