Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
63 / 15 / 7
Регистрация: 01.06.2019
Сообщений: 471
1

Указатель на функцию

10.09.2019, 23:34. Просмотров 1130. Ответов 9
Метки нет (Все метки)

Определить дополнительные функции для сортировки по следующим критериям:
- по возрастанию;
- по убыванию;
- четные значения в начале массива, нечетные в конце.

Вот код, как сделать указатель на функцию even_odd как в примере?

funcii
C++
1
2
3
4
5
6
7
8
9
10
11
void even_odd(int* arr, int sz)
{
    for (int i = 0; i <= sz - 1; i++) 
    {
        if (arr[i] % 2 != 0);
    }
    for (int i = 0; i <= sz - 1; i++) 
    {
        if (arr[i] % 2 == 0);
    }
}
main
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
int main()
{
    setlocale(LC_ALL, "rus");
 
    /*2)Определить дополнительные функции для сортировки по следующим критериям*/
    int sz = 10;
    int* arr;
    arr = new int[sz];
 
    cout << "\n\t    Задача 2" << endl;
    cout << "Массив: ";
    Zap_mas(arr, sz);
    Vivod_mas(arr, sz);
 
    cout << "\n\tСортированный массив";
    cout << "\nПо возростанию: ";
    bool(*go)(int, int) = big;
    bub_sort(arr, sz, go);
    Vivod_mas(arr, sz);
 
    cout << "\nПо убыванию: ";
    bool (*to)(int, int) = small;
    bub_sort(arr, sz, to);
    Vivod_mas(arr, sz);
 
    cout << "\nЧетные в начале, нечетные в конце: ";
 
 
    cout << endl;
    system("pause");
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.09.2019, 23:34
Ответы с готовыми решениями:

Как сделать функцию, возвращающую указатель на функцию (которая в свою очередь возвращает указатель на массив)
Изучаю c++ по одной книжке.Она говорить не умеет.. Так вот понадобилось написать функцию,которая...

В функцию-метод передать указатель на другую функцию-метод и вызвать через переданный указатель
Друзья! Всем привет. Вот код: class otets { public: void f (void (otets::*p)()); ...

Функция, получающая указатель на обычную функцию, получает указатель на метод класса
Здравтсвуйте. Имеется вопрос по указателям на методы класса. Допустим, есть функция( f ), которая...

Указатель на функцию, которая принимает в качестве параметра указатель на массив
я не понимаю. вроде делаю правильно, но выходит ошибка. есть функция. int foo(int *mas){};...

9
5302 / 3602 / 2132
Регистрация: 18.12.2017
Сообщений: 11,398
10.09.2019, 23:51 2
Лучший ответ Сообщение было отмечено Rudman132 как решение

Решение

Цитата Сообщение от Rudman132 Посмотреть сообщение
как сделать указатель на функцию even_odd как в примере?
указатель зачем ? если нужна функция которая перебросит чётные в начало массива:
C++
1
2
3
4
5
6
7
8
9
10
11
void shift_even (int* arr, int sz)
{
    int k=0;
    for (int i = 0; i < sz; i++)
        if (arr[i]%2==0)
        {
            for (int j = i; j > k; j--)
            swap(arr[j],arr[j-1]);
            k++;
        }
}
1
63 / 15 / 7
Регистрация: 01.06.2019
Сообщений: 471
10.09.2019, 23:57  [ТС] 3
Цитата Сообщение от Yetty Посмотреть сообщение
указатель зачем ?
Надо сделать через указатель на функцию,как вот было с сортировкой
C++
1
2
3
bool(*go)(int, int) = big;
    bub_sort(arr, sz, go);
    Vivod_mas(arr, sz
);
0
5302 / 3602 / 2132
Регистрация: 18.12.2017
Сообщений: 11,398
10.09.2019, 23:58 4
Цитата Сообщение от Rudman132 Посмотреть сообщение
Надо сделать через указатель
напишите оригинал условия задачи
0
63 / 15 / 7
Регистрация: 01.06.2019
Сообщений: 471
11.09.2019, 00:02  [ТС] 5
Цитата Сообщение от Yetty Посмотреть сообщение
напишите оригинал условия задачи
Это и есть оригинал

Добавлено через 1 минуту
Цитата Сообщение от Rudman132 Посмотреть сообщение
указатель зачем ?
или здесь нельзя сделать через указатель на функцию?
0
5302 / 3602 / 2132
Регистрация: 18.12.2017
Сообщений: 11,398
11.09.2019, 00:06 6
Цитата Сообщение от Rudman132 Посмотреть сообщение
Это и есть оригинал
если это оригинал, то в этом оригинале нет ни одного упоминания об указателе
Цитата Сообщение от Rudman132 Посмотреть сообщение
Определить дополнительные функции для сортировки по следующим критериям:
- по возрастанию;
- по убыванию;
- четные значения в начале массива, нечетные в конце.
0
63 / 15 / 7
Регистрация: 01.06.2019
Сообщений: 471
11.09.2019, 00:17  [ТС] 7
Цитата Сообщение от Yetty Посмотреть сообщение
нет ни одного упоминания об указателе
В задании нету, но у меня тема сейчас указатель на функцию

Добавлено через 8 минут
Цитата Сообщение от Yetty Посмотреть сообщение
ни одного упоминания об указателе
я так понял тут указатель можно и не делать?
0
5302 / 3602 / 2132
Регистрация: 18.12.2017
Сообщений: 11,398
11.09.2019, 00:21 8
Цитата Сообщение от Rudman132 Посмотреть сообщение
я так понял тут указатель можно и не делать?
лучше уточнить задание, поскольку нет полной формулировки
0
бах-бах и в продакшен!
2002 / 1188 / 442
Регистрация: 23.09.2014
Сообщений: 3,774
Записей в блоге: 4
11.09.2019, 02:21 9
Цитата Сообщение от Yetty Посмотреть сообщение
указатель зачем ?
очевидно нужно сделать по образу и подобию qsort в плане юзабилити:
qsort
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//пример использования функции qsort
#include <iostream>
#include <cstdlib>
 
int vector[] = { 14, 10, 11, 19, 2, 25 };
 
int compare(const void * x1, const void * x2)   // функция сравнения элементов массива
{
  return ( *(int*)x1 - *(int*)x2 );              // если результат вычитания равен 0, то числа равны, < 0: x1 < x2; > 0: x1 > x2
}
 
int main ()
{
  qsort(vector, 6, sizeof(int), compare);      // сортируем массив чисел
  for ( int ix = 0; ix < 6; ix++)
      std::cout << vector[ix] << " ";
  return 0;
}
1
бах-бах и в продакшен!
2002 / 1188 / 442
Регистрация: 23.09.2014
Сообщений: 3,774
Записей в блоге: 4
12.09.2019, 01:05 10
del
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.09.2019, 01:05

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

Передача умного указателя в функцию принимающую указатель на указатель
Итак имеется функция со следующим параметром: HRESULT __stdcall Function(SomeClass **param); ...

Передать в неуправляемую функцию указатель на указатель
Неуправляемая функция типа FUNC(int ** r); Делаю так fixed (int* ptr = arr) { ...

Указатель на функцию возвращающую указатель
Всем привет. Подскажите, пожалуйста, пример не очень сложной программы, в которой встречается...

Работа с файлом (передать указатель на файл в функцию, вернуть указатель на файл из функции)
Подскажите как передать указатель на файл в функцию, как вернуть указатель на файл из функции. ...


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

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

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