Нужно написать функцию bsearch, которая принимает на вход отсортированный по убыванию

Необходимо написать функцию bsearch, которая воспринимает на вход отсортированный по убыванию массив целых чисел и целое число X. В качестве результата функция должна отдавать индекс первого элемента массива, взыскательно наименьшего X. В Вашей реализации функция может принимать любое количество всех характеристик, только 2 этих параметра неотклонимы.

Задать свой вопрос
Юленька Семизенко
уберите подклчюение библиотек и вывод массива, получим возможно даже меньше строк ))
Данил
хорошо, тем не менее строк не так уж и много)) не вижу смысла в холиварах меж мертвым языком и С++)
Тамара Айльковая
на базе C, python извините но мне стало аж забавно, хотите сказать питон ветше паскаля?? для новичков С++, да не наилучший ЯП, но он лучше по собственному, писать на паскале никто не будет рано либо позно пересядут на тот же С++, джаву либо питон..
Таисия Мусницкая
вероятно, ничего против не имею, сам учил паскаль ещё давно, тогда вроде был ABC.NET, но мы писали на турбо(борланд), да.. были времена.. Да-да-да, все только и разговаривают о том что С++ умирает но выходят новые стандарты и все опять заглатывают) сам не так давно стал разработчиком на С++ и скажу: он нисколечко не мертв :) и не умрет пока будут необходимы высокопроизводительные программки ну и собственно забавы, это все огромный рынок а ещё программирование микроконтроллеров
2 ответа
// PascalABC.NET 3.3, сборка 1540 от 16.09.2017
// Внимание! Если программка не работает, обновите версию!

function bsearch(a:array of integer; x:integer):integer:=a.FindIndex(t-gt;tlt;x);

begin
  var P:=ArrRandom(ReadInteger('n='),-50,50).OrderByDescending(t-gt;t).ToArray;
  P.Println;
  var x:=ReadInteger('x=');
  var i:=bsearch(P,x)+1;
  if igt;0 then Writeln('Индекс первого элемента, наименьшего x, равен ',i)
  else Writeln('Все элементы больше х')
end.

Пример
n= 13
47 36 26 25 17 6 -8 -11 -23 -29 -31 -39 -39
x= -10
Индекс первого элемента, наименьшего x, равен 8
include lt;iostreamgt;
include lt;vectorgt;
include lt;algorithmgt;
using namespace std;
 
int bSearch(const vectorlt;intgt; amp;array, int value)

   auto it = find_if(array.begin(), array.end(), [amp;](int v) return vlt;value;);
   return distance(array.begin(), it + 1);

 
int main()

   vectorlt;intgt; array = 16, -13, 12, -8, 5, 4, 1, -2, -5 ;
   sort(array.rbegin(), array.rend());
   for (auto i : array)
    cout lt;lt; i lt;lt; " ";
   
   cout lt;lt; endl lt;lt; bSearch(array, 9) lt;lt; endl;
   return 0;
, оставишь ответ?
Имя:*
E-Mail:


Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт