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

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

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

указатель на функцию - C++

15.05.2013, 21:16. Просмотров 276. Ответов 2
Метки нет (Все метки)

ребят помогите, плиз, ошибку выдает(
Дано: матрицы А[N,M] и B[K,L]. Составить программу, использующую для управления меню, пунктам которого соответствуют указатели на функции, реализующие:
а) поиск максимального элемента двумерного массива;
б) поиск минимального элемента двумерного массива;
в) нахождение среднего арифметического элементов двумерного массива.

вот мой код:
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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
#include <stdio.h>
#include <conio.h>
#include <ctime>
#include <clocale>
#include <stdlib.h>
 
typedef int (*my_fun)(int **x, int n, int m);
void vvod(int **x, int nx, int mx)
{
int i,j;
for(i=0;i<nx;i++)
 
for(j=0;j<mx;j++)
scanf("%d", &x[i][j]);
}
void vivod(int **x, int nx, int mx)
{
int i,j;
for (i=0;i<nx;i++)
{
printf ("\n");
for (j=0;j<mx;j++)
printf ("%2d", x[i][j]);
}
}
int min(int **x, int m, int n)
{
int i, j;
int min=x[0][0];
for (int i=0;i<m;i++)
for (j=0;j<n;j++)
if (x[i][j]<min)
{
min=x[i][j];
}
return min;
}
void menu()
{
printf ("\nВыберите действие над массивами:\n");
printf ("1.Нахождение среднего арифметического элементов двумерного массива.\n");
printf ("2.Поиск максимального элемента двумерного массива.\n");
printf ("3.Поиск минимального элемента двумерного массива.\n");
printf ("4. Выход.\n");
}
int sred(int **x, int nx, int mx)
{
int s=0;
int i, j;
{for (int i=0;i<nx;i++)
for (j=0;j<mx;j++)
{
s=s+x[i][j];
 
}
}
int sred1=int (float(s/(nx*mx)));
return sred1;
}
int max(int **x, int m, int n)
{
int i, j;
int max=x[0][0];
for (int i=0;i<m;i++)
{
for (j=0;j<n;j++)
if (x[i][j]>max)
{
max=x[i][j];
}
}
return max;
}
int vvod(my_fun fun,int **x,int n, int m)
{
fun(x, n, m);
return 0;
}
 
int main()
{
setlocale(LC_ALL, "rassian");
setlocale(LC_ALL, "rus");
srand(time(NULL));
printf("Введите размерность массива А:\n");
printf ("введите количество строк и столбцов\n");
int n, m, i;
scanf ("%d %d",&n, &m);
printf ("Введите элементы массива A\n");
int **masA=new int *[n];
for (i=0; i<n; i++)
masA[i] = new int[m];
vvod(masA,n,m);
printf ("Массив А");
vivod(masA,n,m);
printf("\nВведите размерность массива B:\n");
printf ("введите количество строк и столбцов\n");
int k,p;
scanf ("%d %d", &k, &p);
printf ("Введите элементы массива B\n");
int **masB=new int *[k];
for (i=0;i<k;i++)
masB[i]=new int [p];
vvod (masB, k,p);
printf ("Массив B");
vivod (masB, k, p);
int h;
do
{
menu();
printf ("Выберите пункт\n");
scanf ("%d", &h);
if (h==3)
{
printf ("Минимальный элемент массива А:\n");
printf ("%d\n", vvod(min,masA,n,m));
printf ("Минимальный элемент массива B:\n");
printf ("%d\n", vvod(min,masB,k,p));
}
if (h==1)
{
printf ("Среднее арифметическое массива A:\n");
printf ("%.1f\n", vvod(sred,masA, n,m));
printf ("Среднее арифметическое массива B:\n");
printf ("%.1f\n", vvod (sred, masB, k,p));
}
if (h==2)
{
printf ("Максимальный элемент массива А:\n");
printf ("%d\n", vvod(max,masA,n,m));
printf ("Максимальный элемент массива B:\n");
printf ("%d\n", vvod(max,masB,k,p)); 
}
}
while(h!=4);
delete [] masA;
delete [] masB;
getch();
return 0;
}
помогите ошибку найти)
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.05.2013, 21:16
Здравствуйте! Я подобрал для вас темы с ответами на вопрос указатель на функцию (C++):

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

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

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

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

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

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
anmartex
...
1705 / 1198 / 496
Регистрация: 12.02.2013
Сообщений: 1,978
16.05.2013, 06:11 #2
Функция vvod, должно быть так:
C++
1
2
3
4
int vvod(my_fun fun, int** x, int n, int m)
{
   return fun(x, n, m);
}
P.S.: хотя смысла в ней вообще никакого.
0
Lonter
1 / 1 / 0
Регистрация: 22.04.2013
Сообщений: 45
18.05.2013, 05:24  [ТС] #3
Ну какое задание дали
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.05.2013, 05:24
Привет! Вот еще темы с ответами:

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

Как передать параметр типа "указатель на указатель" в функцию? - C++
#include &quot;stdafx.h&quot; #include &lt;conio.h&gt; #include &lt;iostream&gt; using namespace std; #include &lt;iomanip&gt; using std::setiosflags; ...

Зачем передавать в функцию X указатель на callback функцию, если последняя ВНЕШНЯЯ и вызовется БЕЗО ВСЯКОГО УКАЗАТЕЛЯ? - C++
Собсно. То есть ребята, вот пример отсюда: http://www.cplusplus.com/reference/algorithm/count_if/ // count_if example #include...

Передача массива в функцию используя указатель на функцию - C++
У меня имеется готовая программа без передачи функции в функцию указателем, мне нужно передать функцию ввода масива в функцию его обработки...


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

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

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