Küçükten büyüğe doğru sıralı N elemanlı sayı dizisinde istenen sayıya “yarılama metodu" ile erişim sağlayan program.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
#include <stdio.h>
#include <conio.h>
main()
{
int x,b,s,N,ara,ort;
printf("\nDizi kac elemanlidir?\t");
scanf("%d",&N);
if(N>1)
{
int i[N];
printf("\nAralarinda bosluk birakarak elemanlari giriniz:\n\n");
for(x=0; x<N; x++)
{
scanf("%d",&i[x]);
}
printf("Aranacak elemani giriniz:\t");
scanf("%d",&ara);
b=1;
s=N;
s1:
ort=(b+s)/2;
if(ara>i[ort])
{
if(s==b+1)
{
if(ara==i[b])printf("%d. elemandir",b);
else if(ara==i[s])printf("%d. elemandir",s);
else printf("Sayi dizide degil!");
}
else
{
b=ort;
goto s1;
}
}
else if(ara<i[ort])
{
if(s==b+1)
{
if(ara==i[b])printf("%d. elemandir",b);
else if(ara==i[s])printf("%d. elemandir",s);
else printf("Sayi dizide degil!");
}
else
{
s=ort;
goto s1;
}
}
else printf("%d. elemandir",ort+1);
}
else printf("Gecersiz Dizi!");
getch();
return 0;
}