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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ нарисовать блок-схему http://www.cyberforum.ru/cpp-beginners/thread866393.html
вот код программы, помогите, пожалуйста. #include <conio.h> #include <iostream> using namespace std; int function(int); void main() {
C++ Написать программу по трегонометрической задачи Треугольники заданные координатами их вершин. Вывести координаты вершин треугольника, в котором длина радиуса окружности описанной около него, является наименьшей. http://www.cyberforum.ru/cpp-beginners/thread866342.html
Написать программу, аналогичную команде dir операционной системы MS DOS , которая выводит на экран список файлов и папок из заданного каталога C++
Написать программу, аналогичную команде dir операционной системы MS DOS , которая выводит на экран список файлов и папок из заданного каталога. Дополнить вывод статистической информацией: минимальный размер файла, максимальный размер файла, средний размер файла. #include "stdafx.h" #include"windows.h" #include"conio.h" #include<iostream> struct FileInf {
Генератор случайных чисел C++
Здравствуйте! Кто-нибудь объясните пожалуйста. Вот есть функция rand(). Она возвращает псевдослучайные числа от нуля до RAND_MAX. А можно как-нибудь сделать, чтобы она возвращала числа, ну скажем в промежутке ?? Спасибо!
C++ Найти числа, встречающиеся более двух раз (исправить вывод) http://www.cyberforum.ru/cpp-beginners/thread866328.html
Здравствуйте форумчане) Делаю лабу по программирвоанию, всё написал и даже работает но вывод результата очень корявый(неправильный), помогите его исправить а то уже голова что то не варит... Задача: Написать программу, которая в ланной последовательности целых положительных чисел a..a находит числа, встречающиеся более двух раз. Вывести номер числа и его значение. Если таких чисел нет-вывести...
C++ Графический модуль Всем привет. Пишу приложение под виндовс, которое рассчитывает скорость движения тела. Хотелось бы изображать и траекторию полёта. Как это реализовать? подробнее

Показать сообщение отдельно
Lonter
1 / 1 / 0
Регистрация: 22.04.2013
Сообщений: 45

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

15.05.2013, 21:16. Просмотров 270. Ответов 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;
}
помогите ошибку найти)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru