Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/21: Рейтинг темы: голосов - 21, средняя оценка - 4.67
50 / 31 / 4
Регистрация: 25.04.2013
Сообщений: 366

Массив ссылок на функции

06.08.2013, 12:58. Показов 4548. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Объясните где ошибка:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
void minimum (int*,int);
void maximum (int*,int);
void average (int*,int);
 
int main()
{      
 setlocale(LC_CTYPE, "rus"); // русский язык в консоли
 const int a =10;
 int count=0;
 int aray[a]={0};
 void(*f[3])(int*,int)={minimum,maximum,average};
 std::cout<<"Выберите : \n ";
 
 system ("pause");
 
 
 
 return 0;
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.08.2013, 12:58
Ответы с готовыми решениями:

Массив ссылок
Для проверки определить массив ссылок на абстрактный класс, которым присваиваются адреса различных объектов. не понимаю как это (

Массив ссылок и for auto
Создаю массив std::array ссылок, для ссылок создаю объекты через new, а потом удаляю, можно ли в цикле использовать auto? ...

Как инициализировать массив ссылок?
//--------------------------------------------------------------------------- #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #pragma hdrstop ...

12
 Аватар для Schizorb
512 / 464 / 81
Регистрация: 07.04.2012
Сообщений: 869
Записей в блоге: 1
06.08.2013, 12:59
Определения функций где?
0
50 / 31 / 4
Регистрация: 25.04.2013
Сообщений: 366
06.08.2013, 13:03  [ТС]
Цитата Сообщение от Schizorb Посмотреть сообщение
Определения функций где?
Я их еще не писал, у меня не компилится мой массив с сылками

ошибка
1>1.obj : error LNK2019: ссылка на неразрешенный внешний символ "void __cdecl average(int *,int)" (?average@@YAXPAHH@Z) в функции _main
1>1.obj : error LNK2019: ссылка на неразрешенный внешний символ "void __cdecl maximum(int *,int)" (?maximum@@YAXPAHH@Z) в функции _main
1>1.obj : error LNK2019: ссылка на неразрешенный внешний символ "void __cdecl minimum(int *,int)" (?minimum@@YAXPAHH@Z) в функции _main
0
 Аватар для Schizorb
512 / 464 / 81
Регистрация: 07.04.2012
Сообщений: 869
Записей в блоге: 1
06.08.2013, 13:06
Цитата Сообщение от MousePro Посмотреть сообщение
Я их еще не писал
Так напиши и вопросы отпадут.
0
50 / 31 / 4
Регистрация: 25.04.2013
Сообщений: 366
06.08.2013, 13:21  [ТС]
Цитата Сообщение от Schizorb Посмотреть сообщение
Так напиши и вопросы отпадут.
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
#include <iostream>
#include <time.h>
void minimum (int*,int);
/*
void maximum (int*,int);
void average (int*,int);
*/
int main()
{      
    srand(time(NULL));
 setlocale(LC_CTYPE, "rus"); // русский язык в консоли
 const int a =10;
 int count=0;
 int aray[a]={0};
 for(int x=0;x<a;x++)
 {
     aray[x]=1+rand()%100;
 }
 
 std::cout<<"Выберите : \n ";
 std::cin>>count;
 /*
 void(*f[1])(int*,int)={minimum};
 (*f[count])(aray,a);
 */
 minimum(aray,a);
 system ("pause");
 
 
 
 return 0;
}
 
void minimum( int * aray,int a)
{
    for(int x=0;x<a;x++)
        std::cout<<aray[x]<<"\n";
}
Блин ппц, не могу никак привыкнуть к указателям... Где теперь тут ошибка )))
0
 Аватар для Schizorb
512 / 464 / 81
Регистрация: 07.04.2012
Сообщений: 869
Записей в блоге: 1
06.08.2013, 13:25
Кроме неподключенного #include <cstdlib> не вижу ошибки.
1
50 / 31 / 4
Регистрация: 25.04.2013
Сообщений: 366
06.08.2013, 13:28  [ТС]
все равно не хочет
0
 Аватар для Schizorb
512 / 464 / 81
Регистрация: 07.04.2012
Сообщений: 869
Записей в блоге: 1
06.08.2013, 13:30
Кто не хочет и что не хочет? Конкретно, какая ошибка. Во время компиляции или исполнения?

Вот первый код:

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
#include <iostream>
#include <cstdlib>
 
void minimum (int*,int);
void maximum (int*,int);
void average (int*,int);
 
int main()
{      
    setlocale(LC_CTYPE, "rus"); // русский язык в консоли
    
    const int a =10;
    int count=0;
    int aray[a]={0};
    void(*f[3])(int*,int)={minimum,maximum,average};
    
    std::cout<<"Выберите : \n ";
 
    // тут какой-то код
    
    system ("pause");
    return 0;
}
 
void minimum (int*,int)
{
    // тут какое-то тело
}
void maximum (int*,int)
{
    // тут тоже какое-то тело
}
void average (int*,int)
{
    // тут еще какое-то тело
}
1
50 / 31 / 4
Регистрация: 25.04.2013
Сообщений: 366
06.08.2013, 13:32  [ТС]
Цитата Сообщение от Schizorb Посмотреть сообщение
Кто не хочет и что не хочет? Конкретно, какая ошибка. Во время компиляции или исполнения?
да это у меня что то с студией, она даже "привет мир" не захотела компилить)
0
 Аватар для egor2116
584 / 387 / 216
Регистрация: 20.01.2013
Сообщений: 1,169
06.08.2013, 13:38
Блин ппц, не могу никак привыкнуть к указателям... Где теперь тут ошибка )))
Наверное проблема в этом
C++
1
2
 void(*f[1])(int*,int)={minimum};
 (*f[count])(aray,a);
замениете на

C++
1
2
 void(*f[1])(int*,int)={minimum};
 (*f)(aray,a);
1
 Аватар для Olivеr
415 / 411 / 95
Регистрация: 06.10.2011
Сообщений: 832
06.08.2013, 13:46
C++
1
2
3
4
5
6
7
8
9
10
11
12
void max(int, int*) {}
void min(int, int*) {}
void avg(int, int*) {}
 
int main()
{
    using func_t = void (*)(int, int*);
    func_t functions[3] = { max, min, avg };
    int x = 0;
    functions[0](x, &x);
    return 0 ;
}
Добавлено через 53 секунды
Цитата Сообщение от MousePro Посмотреть сообщение
void(*f[3])(int*,int)=
зверски удобная запись
2
50 / 31 / 4
Регистрация: 25.04.2013
Сообщений: 366
06.08.2013, 14:05  [ТС]
Цитата Сообщение от Olivеr Посмотреть сообщение
зверски удобная запись
Да вроде бы норм )))

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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#include <iostream>
#include <time.h>
#include <cstdlib>
void qSort(int[], int, int);
void all(int *,int);
void minimum (int *,int);
void maximum (int*,int);
void average (int*,int);
int main()
{      
    srand(time(NULL));
 setlocale(LC_CTYPE, "rus"); // русский язык в консоли
 const int a =10;
 int count=0;
 int aray[a]={0};
 for(int x=0;x<a;++x)
 {
     aray[x]=1+rand()%100;
 }
qSort(aray, 0, a-1);
 
 while(count !=4)
 {
 std::cout<<"Выберите : \n ";
 std::cout<<"0      Напечатать массив оценок \n ";
 std::cout<<"1  Найти низшую оценку \n ";
 std::cout<<"2  Найти высшую оценку \n ";
 std::cout<<"3  Найти среднее значение \n ";
 std::cout<<"4  Выход \n ";
 std::cin>>count;
 
if(count!=4)
{
 void(*f[4])(int*,int)={all,minimum,maximum,average};
 (*f[count])(aray,a);
}
 }
 system ("pause");
 
 
 
 return 0;
}
 
void all(int *aray,int a)
{
    std::cout<<"\n";
    for(int x=0;x<a;++x)
    {
        std::cout<<aray[x]<<"\n";
    }
}
void minimum( int * aray,int a)
{
    std::cout<<"\n";
std::cout<<aray[0]<<"\n";
}
void maximum( int * aray,int a)
{
    std::cout<<"\n";
std::cout<<aray[9]<<"\n";
}
 
 
void average( int * aray,int a)
{
int total=0;
for(int x=0;x<a;++x)
{
    total+=aray[x];
}
std::cout<<"\n"<<total/a<<"\n";
}
 
void qSort(int A[], int low, int high) {
      int i = low;                
      int j = high;
      int x = A[(low+high)/2];  
      do {
          while(A[i] < x) ++i;  
          while(A[j] > x) --j;  
          if(i <= j){           
              int temp = A[i];
              A[i] = A[j];
              A[j] = temp;
              
              i++; j--;
          }
      } while(i < j);
      if(low < j) qSort(A, low, j);
      if(i < high) qSort(A, i, high);
  }
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
06.08.2013, 15:22
typedef'ом можно определить:
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
void minimum (int*,int);
void maximum (int*,int);
void average (int*,int);
 
#include<iostream>
using namespace std;
 
int main()
{  
setlocale(LC_ALL, "Russian");
typedef void (*fn_ptr)(int*, int);//
fn_ptr fp[3]={minimum, maximum, average};
int arr[4]={1,2,3,4};
for(int i=0; i<3; ++i){
    fp[i](arr, 4);
    cout<<arr[0]<<endl;
}
 
cout<<endl; 
system ("pause");
     return 0;
}
 
void minimum (int* ar, int sz)
{
  ar[0]=10; 
}
void maximum (int* ar, int sz)
{
 ar[0]=200; 
}
void average (int* ar, int sz)
{
 ar[0]=150; 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.08.2013, 15:22
Помогаю со студенческими работами здесь

Массив из ссылок
есть меню состоящее из ссылок как мне создать массив из этих ссылок используя Control.ControlCollection.Find я пока сразу...

Массив из ссылок
Здравствуйте! Допустим, есть 2 массива: string a = new string {&quot;lol&quot;, &quot;kek&quot;}; int b = new int {1, 2}; Как сформировать...

Массив ссылок на TEdit
Имеются уже созданные компоненты edit1, edit2, ... ,edit16 . Надо присвоить массиву ссылки на эти компоненты. Массив : edt: array of...

Массив ссылок на jquery
Приветствую ребята! Подскажите как на jquery реализовать массив ссылок? То есть много ссылок на внешние ресурсы. Во фрейме они грузятся...

Редактировать массив ссылок
у меня есть массив ссылок, вида: ./i2018i217.html Мне нужно на все такие ссылки попереходить. Но проблема в том, что они начитаются на...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru