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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Mireashnik
0 / 0 / 0
Регистрация: 16.01.2009
Сообщений: 3
#1

Найти элемент массива, равный заданному числу Х или сообщить о его отсутствии - C++

16.01.2009, 00:19. Просмотров 662. Ответов 4
Метки нет (Все метки)

Доброго времени суток.Делаю первые шаги в программировании и встала задача,которую не могу решить,надеюсь поможите,заранее искренне благодарю

Условие:

VC++6

В матрице A[m][n] все строки и столбцы упорядочены по неубыванию. Найти элемент массива,равный заданному числу Х или сообщить о его отсутствии.Число действий в решении должно быть порядка m+n (а не порядка m*n)
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.01.2009, 00:19     Найти элемент массива, равный заданному числу Х или сообщить о его отсутствии
Посмотрите здесь:

Найти элемент массива, равный заданному числу Х и отпечатать его индексы (I,J) - C++
Находила аналогичные примеры, но ничего не получилось.

Найти элемент массива, равный заданному числу Х и отпечатать его индекс - C++
Задан массив чисел А,упорядоченный по возрастанию по строкам и столбцам, т.е. А < А < ... < А (при всех I), А < A < ... < А (при всех J)....

Реализовать функцию, проверяющую, есть ли в массиве целых чисел элемент, равный заданному числу - C++
Помогите с решением след задачи: Реализовать функцию Check(a, n), проверяющую, есть ли в массиве целых чисел a элемент, равный n

Необходимо определить, есть ли в указанной строке хотя бы один элемент, равный заданному числу - C++
Дан двумерный массив n×m элементов, заполненный целыми числами. Также заданы число a и номер строки i. Необходимо определить, есть ли в...

Найти элемент массива наиболее близкий к заданному числу. - C++
Дано вещественное число R и массив вещественных чисел. Найти элемент массива, который наиболее близок к данному числу.Могу написать только...

Найти первый элемент массива, кратный заданному числу - C++
Помогите решить задачу: найти первый элемент массива, кратный заданному числу, заменить его обратной величиной и поменять местами с...

Найти элемент массива который наименее близок к заданному числу - C++
Дано вещественное число R и массив вещественных чисел. Найти элемент массива который наименее близок к данному числу

Найти элемент массива, который наиболее близок к заданному числу R - C++
>Дано число R и массив A размера N. Найти элемент массива, который наиболее близок к числу R. Помогите найти ошибку #include...

Есть ли в данном массиве элемент, равный заданному числу? Если есть, то вывести номер одного из них. - C++
Есть ли в данном массиве элемент, равный заданному числу? Если есть, то вывести номер одного из них. Напишите программу пожалуйста,очень...

Каждый равный нулю элемент массива заменить полусуммой его соседних элементов - C++
Нужна помощь в решении задачи: Каждый равный нулю элемент массива заменить полусуммой его соседних элементов. Полученный массив...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ISergey
Maniac
Эксперт С++
1372 / 883 / 52
Регистрация: 02.01.2009
Сообщений: 2,652
Записей в блоге: 1
16.01.2009, 01:03     Найти элемент массива, равный заданному числу Х или сообщить о его отсутствии #2
может бинарный поиск прокатит.
Mireashnik
0 / 0 / 0
Регистрация: 16.01.2009
Сообщений: 3
16.01.2009, 01:05  [ТС]     Найти элемент массива, равный заданному числу Х или сообщить о его отсутствии #3
да,уже советовали применить этот способ,вот только к сожалению почитав его описание так и не смог его применить,вот и прошу помощи
ISergey
Maniac
Эксперт С++
1372 / 883 / 52
Регистрация: 02.01.2009
Сообщений: 2,652
Записей в блоге: 1
16.01.2009, 01:27     Найти элемент массива, равный заданному числу Х или сообщить о его отсутствии #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
вот для одномерного массива
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
/*************************************************************************
Поиск в упорядоченной последовательности первого элемента,
не меньшего, чем T.
 
Параметры:
arr - упорядоченный по возрастанию массив элементов с
индексами от 0 до N-1
T - искомый элемент
 
Результат:
Индекс самого первого элемента, не меньшего T. В случае,
если таких элементов в массиве нет, возвращается N.
*************************************************************************/
int arrBinarySearch(int *arr,int t)
{
    int l = static_cast<int>(_msize(arr)/sizeof(int));
    int result;
    int half;
    int first = 0;
    int middle;
 
    while(l>0)
    {
        half = l/2;
        middle = first+half;
        if( arr[middle] < t )
        {
            first = middle+1;
            l = l-half-1;
        }
        else
        {
            l = half;
        }
    }
    result = first;
    return result;
}
Добавлено через 11 минут 53 секунды
наверно для корректного результата следует ето
C++
1
result = first;
заменить на
C++
1
2
3
4
if(arr[first] != t)
    result = static_cast<int>(_msize(arr)/sizeof(int));
else
    result = first;
Mireashnik
0 / 0 / 0
Регистрация: 16.01.2009
Сообщений: 3
16.01.2009, 01:36  [ТС]     Найти элемент массива, равный заданному числу Х или сообщить о его отсутствии #5
Буду пробовать разобраться))
Yandex
Объявления
16.01.2009, 01:36     Найти элемент массива, равный заданному числу Х или сообщить о его отсутствии
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru