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

Нужно написать функцию которая возвращает индекс элемента в массиве который мы ищем - C++

Восстановить пароль Регистрация
 
bbvova
0 / 0 / 0
Регистрация: 03.11.2015
Сообщений: 9
03.11.2015, 11:15     Нужно написать функцию которая возвращает индекс элемента в массиве который мы ищем #1
Нужно написать функцию которая возвращает индекс элемента в массиве который мы ищем. Массив наполнять вручную.. Если такого значения нет , вернуть размер массива. Массив отсортирован. Я без понятия как делать. Помогите написать.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.11.2015, 11:15     Нужно написать функцию которая возвращает индекс элемента в массиве который мы ищем
Посмотрите здесь:

C++ Рекурсия:написать функцию которая возвращает степень числа
Написать функцию, которая возвращает истину, если в массиве нет отрицательных элементов C++
C++ Написать функцию которая может читать цифры с 1-го до n-го элемента в массиве (используя pointer)
Написать функцию, которая принимает два числа и возвращает C++
C++ Написать функцию, которая принимает два числа и возвращает
Написать функцию, которая возвращает максимальное из двух чисел, которые переданы в функцию в качестве параметров C++
C++ Написать функцию, которая возвращает минимальное из двух чисел, которые переданы в функцию в качестве параметров
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
6048 / 5651 / 1826
Регистрация: 18.12.2011
Сообщений: 14,437
Завершенные тесты: 1
03.11.2015, 11:28     Нужно написать функцию которая возвращает индекс элемента в массиве который мы ищем #2
Образец
Образцы (шаблоны) программ для типовых задач
Ваша функция
C++
1
2
3
4
5
6
7
8
9
10
// пример обработки - поиск элемента в массиве
int Work(int* M,int n,int k)
{
    for(int i=0;i<n;i++)
    {
        if(M[i]==k)
           return i;
    }
    return n;
}
bbvova
0 / 0 / 0
Регистрация: 03.11.2015
Сообщений: 9
03.11.2015, 11:29  [ТС]     Нужно написать функцию которая возвращает индекс элемента в массиве который мы ищем #3
Мой код
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <cstdio>
 
int Array(int value)
{
 
    int array[10] = { 1, 2, 3, 6, 7, 8 };
    for (int index = 0; index < 10; ++index)
    {
        if (value = array[index])
            return array[index];
        else
            return sizeof(array[10]);
    }
}
int main()
{
    printf("Value index:%d\n", Array[5]);
 
}
zss
Модератор
Эксперт С++
 Аватар для zss
6048 / 5651 / 1826
Регистрация: 18.12.2011
Сообщений: 14,437
Завершенные тесты: 1
03.11.2015, 11:33     Нужно написать функцию которая возвращает индекс элемента в массиве который мы ищем #4
bbvova,
1.
Цитата Сообщение от bbvova Посмотреть сообщение
if (value = array[index])
Операция сравнение, это два знака равно, а Вы написали присвоение
2.
Цитата Сообщение от bbvova Посмотреть сообщение
return array[index];
Нужно возвращать index, а у Вас фактически возвращается value
Цитата Сообщение от bbvova Посмотреть сообщение
return sizeof(array[10]);
это вообще не из той оперы, т.к. sizeof(array[10]) равно 40.

В общем, см. мой предыдущий пост.
castaway
Эксперт С++
4867 / 3006 / 370
Регистрация: 10.11.2010
Сообщений: 11,055
Записей в блоге: 10
Завершенные тесты: 1
03.11.2015, 11:35     Нужно написать функцию которая возвращает индекс элемента в массиве который мы ищем #5
Цитата Сообщение от zss Посмотреть сообщение
т.к. sizeof(array[10]) равно 40.
Не 4?
Dimension
Dimension
553 / 434 / 134
Регистрация: 08.04.2014
Сообщений: 1,704
Завершенные тесты: 1
03.11.2015, 11:35     Нужно написать функцию которая возвращает индекс элемента в массиве который мы ищем #6
думаю сортировка указывает на бинарный поиск
bbvova
0 / 0 / 0
Регистрация: 03.11.2015
Сообщений: 9
03.11.2015, 11:38  [ТС]     Нужно написать функцию которая возвращает индекс элемента в массиве который мы ищем #7
Переделал:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
int Array(int* array, int value, int size)
{
 
    
    for (int index = 0; index < size; ++index)
    {
        if (array[index] == value)
            return index;
        else
            return size;
    }
}
int main()
{
    int array[10] = { 1, 3, 5, 7, 8 };
 
    int pr = Array(array, 5, 10);
    printf("Value index:%d\n", pr);
 
}
Dimension
Dimension
553 / 434 / 134
Регистрация: 08.04.2014
Сообщений: 1,704
Завершенные тесты: 1
03.11.2015, 11:42     Нужно написать функцию которая возвращает индекс элемента в массиве который мы ищем #8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int main() {
    
    int a[] = { 1,2,3,4,5,6,7,12,15,17 };
    int k = 13;//его ищем
    int l = 0, r = sizeof(a) / sizeof(a[0]),m;
    while (l<r) {
        m = (r+l) / 2;
        if (a[m] < k)
            l = m+1;
        else r = m;
    }
    if (a[r] == k)
        cout << r+1;
    else cout << sizeof(a) / sizeof(a[0]);
}
zss
Модератор
Эксперт С++
 Аватар для zss
6048 / 5651 / 1826
Регистрация: 18.12.2011
Сообщений: 14,437
Завершенные тесты: 1
03.11.2015, 11:49     Нужно написать функцию которая возвращает индекс элемента в массиве который мы ищем #9
bbvova, чем Вас не устроила моя функция в первом сообщении?
Предпочитаете наделать собственных ошибок?
castaway
Эксперт С++
4867 / 3006 / 370
Регистрация: 10.11.2010
Сообщений: 11,055
Записей в блоге: 10
Завершенные тесты: 1
03.11.2015, 11:51     Нужно написать функцию которая возвращает индекс элемента в массиве который мы ищем #10
Цитата Сообщение от bbvova Посмотреть сообщение
Переделал:
Твой код работает неправильно. При первом же несовпадении вернётся размер массива.
bbvova
0 / 0 / 0
Регистрация: 03.11.2015
Сообщений: 9
03.11.2015, 11:54  [ТС]     Нужно написать функцию которая возвращает индекс элемента в массиве который мы ищем #11
zss, а как вывести? в маине
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int Array(int* array, int value, int size)
{
 
    
    for (int index = 0; index < size; ++index)
    {
        if (array[index] == value)
            return index;
    }
    return size;
}
int main()
{
    int array[10] = { 1, 3, 5, 7, 8 };
 
    int pr = Array(array, 2, 10);
    printf("Value index:%d\n", pr);
 
}
zss
Модератор
Эксперт С++
 Аватар для zss
6048 / 5651 / 1826
Регистрация: 18.12.2011
Сообщений: 14,437
Завершенные тесты: 1
03.11.2015, 12:00     Нужно написать функцию которая возвращает индекс элемента в массиве который мы ищем #12
В принципе, правильно.
Для полноты кода
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
#include <conio.h>
int Array(int* array, int value, int size)
{
    for (int index = 0; index < size; ++index)
    {
        if (array[index] == value)
            return index;
    }
    return size;
}
int main()
{
    int array[10] = { 1, 3, 5, 7,8 };// с 5-го по 9-й будут нули
    int pr = Array(array, 0, 10);
    printf("Value index:%d\n", pr);
    getch();
    return 0;
}
bbvova
0 / 0 / 0
Регистрация: 03.11.2015
Сообщений: 9
03.11.2015, 12:56  [ТС]     Нужно написать функцию которая возвращает индекс элемента в массиве который мы ищем #13
zss, я показал код преподу, препод сказал доделать такое: у нас масив отсортован поетому нам нужно пройтись по масиву до елемунтов що не больше елемента который мы ищем
правильно?
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <cstdio>
 
 int FindValueInArray(const int* array, int value, int size)
{
 
 
    for (int index = 0; index < array[value]; ++index)
    {
        if (array[index] == value)
            return index;
    }
    return size;
}
int main()
{
    int array[5] = { 1, 3, 5, 7, 8 };
 
    int pr = FindValueInArray(array, 8, 5);
    printf("Value index:%d\n", pr);
 
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.11.2015, 14:03     Нужно написать функцию которая возвращает индекс элемента в массиве который мы ищем
Еще ссылки по теме:

Функция, которая возвращает индекс первого элемента C++
Написать функцию, которая возвращает индекс последнего минимального элемента массива C++
C++ Написать функцию, которая возвращает значение
C++ Написать функцию, которая ищет число в одноименном массиве и возвращает индекс каждого вхождения этого числа
Написать функцию, которая по заданному x возвращает значение C++

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

Или воспользуйтесь поиском по форуму:
zss
Модератор
Эксперт С++
 Аватар для zss
6048 / 5651 / 1826
Регистрация: 18.12.2011
Сообщений: 14,437
Завершенные тесты: 1
03.11.2015, 14:03     Нужно написать функцию которая возвращает индекс элемента в массиве который мы ищем #14
Неправильно.
C++
1
2
3
4
5
6
7
8
9
10
11
 int FindValueInArray(const int* array, int value, int size)
{
 
 
    for (int index = 0; index<size && value <= array[index]; ++index)
    {
        if (array[index] == value)
            return index;
    }
    return size;
}
Yandex
Объявления
03.11.2015, 14:03     Нужно написать функцию которая возвращает индекс элемента в массиве который мы ищем
Ответ Создать тему
Опции темы

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