#include #include #include int losuj(int min, int max) { int tmp; if (max >= min) max -= min; else { tmp = min - max; min = max; max = tmp; } return max ? (rand() % max + min) : min; } int binarne(int tab[], int x, int n) { int left = 0, right = n - 1; int found = 0, m; while(right - left >= 0 && found == 0) { m = (left + right) / 2; if(x == tab[m]) { found = 1; } else { if(x < tab[m]) { right = m - 1; } else { left = m + 1; } } } if(found == 1) { return m; } else { return -1; } } int main() { int tab[2000], j = 0; for (j = 0; j < 2000; j++) { tab[j] = j + 1; } int a = losuj(0, 2000); printf("%d %d\n", a, binarne(tab, a, 2000)); return 0; }