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

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

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

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

03.11.2015, 11:15. Просмотров 369. Ответов 13
Метки нет (Все метки)

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

Написать функцию, которая возвращает индекс последнего минимального элемента массива - C++
Дан одномерный массив из n чисел. Элементами массива являются случайные целые числа от -10 до 10 включительно. Напишите функцию, которая...

Написать функцию, которая ищет число в одноименном массиве и возвращает индекс каждого вхождения этого числа - C++
Здравствуйте) Помогите с задачей. Написать функцию, которая ищет число в одноименном массиве и возвращает индекс каждого вхождения...

Написать функцию, которая возвращает истину, если в массиве нет отрицательных элементов - C++
Ребята, нужна ваша помощь. На носу сессия и времени практически нет. Помогите с заданием по программированию: 1.Написать функцию, которая...

Функция, которая возвращает индекс первого элемента - C++
Дан массив, упорядоченный по убыванию { 16, 13, 12, 8,5,4,1,-1,-2,-5}. Написать функцию, которая возвращает индекс первого элемента,...

Написать функцию которая может читать цифры с 1-го до n-го элемента в массиве (используя pointer) - C++
Написать функцию которая может читать цифры с 1-го до n-го элемента в массиве и выводит их. Примичание использовать pointer. Ввод: ...

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

13
zss
Модератор
Эксперт С++
6478 / 6041 / 1983
Регистрация: 18.12.2011
Сообщений: 15,660
Завершенные тесты: 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;
}
0
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]);
 
}
0
zss
Модератор
Эксперт С++
6478 / 6041 / 1983
Регистрация: 18.12.2011
Сообщений: 15,660
Завершенные тесты: 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.

В общем, см. мой предыдущий пост.
0
castaway
Эксперт С++
4885 / 3020 / 370
Регистрация: 10.11.2010
Сообщений: 11,078
Записей в блоге: 10
Завершенные тесты: 1
03.11.2015, 11:35 #5
Цитата Сообщение от zss Посмотреть сообщение
т.к. sizeof(array[10]) равно 40.
Не 4?
1
Dimension
Dimension
557 / 438 / 135
Регистрация: 08.04.2014
Сообщений: 1,709
Завершенные тесты: 1
03.11.2015, 11:35 #6
думаю сортировка указывает на бинарный поиск
0
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);
 
}
0
Dimension
Dimension
557 / 438 / 135
Регистрация: 08.04.2014
Сообщений: 1,709
Завершенные тесты: 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]);
}
0
zss
Модератор
Эксперт С++
6478 / 6041 / 1983
Регистрация: 18.12.2011
Сообщений: 15,660
Завершенные тесты: 1
03.11.2015, 11:49 #9
bbvova, чем Вас не устроила моя функция в первом сообщении?
Предпочитаете наделать собственных ошибок?
0
castaway
Эксперт С++
4885 / 3020 / 370
Регистрация: 10.11.2010
Сообщений: 11,078
Записей в блоге: 10
Завершенные тесты: 1
03.11.2015, 11:51 #10
Цитата Сообщение от bbvova Посмотреть сообщение
Переделал:
Твой код работает неправильно. При первом же несовпадении вернётся размер массива.
0
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);
 
}
0
zss
Модератор
Эксперт С++
6478 / 6041 / 1983
Регистрация: 18.12.2011
Сообщений: 15,660
Завершенные тесты: 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;
}
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);
 
}
0
zss
Модератор
Эксперт С++
6478 / 6041 / 1983
Регистрация: 18.12.2011
Сообщений: 15,660
Завершенные тесты: 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;
}
0
03.11.2015, 14:03
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.11.2015, 14:03
Привет! Вот еще темы с ответами:

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

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

Написать функцию, которая по заданному x возвращает значение - C++
Написать функцию, которая по заданному x возвращает значение. y=ln|x^3 - 1|. (Нужно максимально простое решение, для новичков)

Написать функцию, возвращающую индекс числа в массиве - C++
Здравствуйте, помогите пожалуйста решить задачу: создать функцию, которая принимает одномерный числовой массив и его длину, а также число...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

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