Форум программистов, компьютерный форум CyberForum.ru

Ввести число и найти в массиве ближайшее к нему методом двоичного поиска - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ В данной квадратной матрице порядка 17 указать индексы всех элементов с наименьшим значением http://www.cyberforum.ru/cpp-beginners/thread262865.html
В данной квадратной матрице порядка 17 указать индексы всех элементов с наименьшим значением
C++ НЕправильно работает пара ф-ций сделал стэк, дэк и очередь, дэк не хочет добавлять, говорит, уже полный. мож я где лохонулся? помогите устранить ошибку не пугайтесь большого быдлокода, пожалуйста //очередь и дек в хед файле queve Stack queve; bool IsFullQ() { if(head==SSize-1) return 1; return 0; http://www.cyberforum.ru/cpp-beginners/thread262863.html
C++ Программирование на С++
Помогите дорешать задачу в С++: Дано целое число N и набор из N целых чисел. Вывести номера тех чисел в наборе, которые больше своего правого соседа, и количество K таких чисел. #include <iostream> using namespace std; int main(){ int n,i,j,*mas1,*mas2; cout << "Vvedite celoe chislo N " << endl; cin >> n; mas1=(int *)(calloc(n,sizeof(int))); mas2=(int...
system("") промелькивает окно cmd(( c++ C++
Значит есть функция system("start steam://rungameid/240"); Проблема в том что когда запускаешь программу то промелькивает окно c:/windows/system32/cmd.exe Как сделать что он не мелькало. Вот сам код(написан на builder c++) //--------------------------------------------------------------------------- #include <vcl.h> #include <windows.h> #pragma hdrstop ...
C++ Преобразовать строку, записав адрес прававильно: <область>, <нас. пункт>, <улица>, <дом / квартира>, <индекс> http://www.cyberforum.ru/cpp-beginners/thread262838.html
Строка, содержит почтовый адрес, произвольной формы. Преобразовать строку, записав адрес прававильно: <область>, <нас. пункт>, <улица>, <дом / квартира>, <индекс> С помощью #include "stdafx.h"
C++ вычислить С++ подробнее

Показать сообщение отдельно
igorrr37
 Аватар для igorrr37
1594 / 1222 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
14.04.2011, 19:49     Ввести число и найти в массиве ближайшее к нему методом двоичного поиска
ищет ближайшее по абсолюту
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include<stdio.h>
#include<math.h>
 
int Compare(const void* a, const void* b){
    return *(int*)a-*(int*)b;
}
 
int BSearch (int A[], int Lb, int Ub, int Key){
    int M;
    while(1){
        M = (Lb + Ub)/2;
        if (Key < A[M]){
            Ub = M - 1;
        }
        else if (Key > A[M]){
            Lb = M + 1;
        }
        else{
            return M;
        }
        if (Lb > Ub){
            return fabs(A[Lb]-Key)<fabs(A[Ub]-Key)? Lb: Ub;
        }
    }
}
 
int main(){
    int arr[]={-20,50,-10,0,10,20,-30,30,40}, size=sizeof(arr)/sizeof(*arr), key=23, i;
    qsort(arr, size, sizeof(*arr), Compare);
    puts("Sorted array:");
    for(i=0; i<size; i++){
        printf("%d ", arr[i]);
    }
    int index=BSearch(arr, 0, size, key);
    printf("\n\nNearest number: %d", arr[index]);
    return 0;
}
 
Текущее время: 07:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru