logo
ООП для Заоч / Пинчук Лозовская Программир на С

Void main()

{ unsigned N; // кількість елементів у вихідному масиві

int s; // зразок для пошуку

int k = -1; // результат пошуку :

// k = -1, якщо елемент не знайдений,

// якщо k >= 0, то k – номер шуканого елемента printf("Розмір масиву N = "); scanf("%u",&N);

int* A = new int[N]; // створення робочого масиву

printf("Введіть елементи масиву: \n");

for(k=0; k<N; k++) scanf("%d",&a[k]);

printf("Зразок для пошуку = "); scanf ("%d", &s);

top = 0; bot = N-1;

int n_test = 0;

printf ("bot m top\n");

do { m = bot+(top-bot)/2;

printf("%5d %5d %5d\n", bot, m, top);

n_test++;

if ( A[m]==s) {k=m; break;}

else { if (s<A[m]) bot = m-1;

else top = m+1;

}

} while (bot <= top) ;

if (k>=0)

{ printf("Пошук успішний. Збіг з елементом %d.\n", k);

printf("Виконано %d порівнянь.\n", n_test);

}

else printf("Збігів зі зразком немає.\n");

}

Протокол роботи програми:

Розмір масиву N = 9

Введіть елементи масиву:

91 -1 0 -5 13 4 70 75 54

Зразок для пошуку = 70

bot m top

0 4 8

5 6 8

Пошук успішний. Збіг з елементом 6

Виконано 2 порівнянь.