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

Дан массив упорядоченных по возрастанию целых чисел. разработать алгоритм бинарного поиска заданного числа, результат номер искомого числа или 0 если - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ функция rand и присвоение http://www.cyberforum.ru/cpp-beginners/thread757533.html
написал часть программы из учебника Дейтела, глава 4, задача 17 в кратце из того что я сделал - мне нужно что бы при втором показе свободных мест программа показывала уже занятые места после первого прогона, (потом в цикле будет и тд) но у меня присвоенное место не соответствует показанному во второй раз, помогите найти ошибку #include <iostream> #include <locale.h> #include <stdlib.h>...
C++ Вычислить с точностью до Е Вычислить с точностью до Е (разность между найденным и предыдущим значением) меньше Е. 1) y=cos(1+cos(2+...+cos(39+cos(40) ))) 2) y=sqrt(1+sqrt(1+sqrt(1+...))) Помогите пожалуйста написать программу. http://www.cyberforum.ru/cpp-beginners/thread757514.html
Матрицы. Найти и распечатать сумму элементов 5-го столбца матрицы А и сумму элементов последней строки матрицы В C++
Даны две матрицы А(mxn)и В(m1xn1).программа находит и распечатывает сумму элементов 5-го столбца матрицы А и сумму элементов последней строки матрицы В.
Из Паскаля в С++ Вывести номера тех чисел в наборе, которые меньше своего левого соседа C++
И так, сама задача вот: Дано целое число N и набор из N целых чисел. Вывести номера тех чисел в наборе, которые меньше своего левого соседа, и количество K таких чисел. Есть код Паскаля(нашел тут на сайте): var n,k,v,s,i:longint; begin read(n); read(v);{отдельно прочитаем первый элемент} s:=v; k:=0;
C++ Как через if объявить, что некоторые значения не должны быть равны 0 http://www.cyberforum.ru/cpp-beginners/thread757466.html
Мне нужно вычислить предельную сумму(както так) и там есть значения, которые находятся в знаменателе и не должны быть равны 0. Как это обозначить через оператор if, что, на пример, m не равно трем и т.д. ?
C++ Написал программку с рекурсией. Не могу понять, почему не изменяется аргумент. Еще раз здравствуйте. Днем будучи в очереди которая затянулась на 2 часа, решил побаловаться с кодом. Написал программку(если ее так можно назвать)) с рекурсией, вроде должно работать... Когда ввожу аргумент, который проходит рекурсию, по идее должен изменится, но в итоге остается прежним. Может кто-то подсказать, почему аргумент который возвращается не умножается? Возможно что-то делаю не так? ... подробнее

Показать сообщение отдельно
Parradox
Сообщений: n/a
10.01.2013, 11:32     Дан массив упорядоченных по возрастанию целых чисел. разработать алгоритм бинарного поиска заданного числа, результат номер искомого числа или 0 если
помогите решить задачу: Дан массив упорядоченных по возрастанию целых чисел. разработать алгоритм бинарного поиска заданного числа, результат номер искомого числа или 0 если такого числа нет в массиве.
Всё до чего я смог додуматься вот. всем заранее спасибо за помощь и исправления(данный вариант не работает)

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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
int x=0;
int a[]= {1,3,6,22,25,27,31,32,33,37,38,40};
int n=13;
size_t first = 0; /* Номер первого элемента в массиве */
size_t last = n; /* Номер элемента в массиве, СЛЕДУЮЩЕГО ЗА последним */
/* Если просматриваемый участок непустой, first<last */
size_t mid;
 
if (n == 0)
{
/* массив пуст */
}
else if (a[0] > x)
{
/* не найдено; если вам надо вставить его со сдвигом - то в позицию 0 */
}
else if (a[n - 1] < x)
{
/* не найдено; если вам надо вставить его со сдвигом - то в позицию n */
}
 
while (first < last)
{
/* ВНИМАНИЕ! В отличие от более простого (first+last)/2, этот код стоек к переполнениям.
Если first и last знаковые, возможен код (unsigned)(first+last) » 1. */
mid = first + (last - first) / 2;
 
if (x <= a[mid])
{
last = mid;
}
else
{
first = mid + 1;
}
}
 
/* Если условный оператор if(n==0) и т.д. в начале опущен - значит, тут раскомментировать! */
if (/* last<n &&*/ a[last] == x)
{
/* Искомый элемент найден. last - искомый индекс */
} else
{
 
}
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 04:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru