Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/13: Рейтинг темы: голосов - 13, средняя оценка - 5.00
8 / 5 / 7
Регистрация: 15.02.2018
Сообщений: 36

Шаблон поиска максимального элемента для многомерного массива

04.03.2018, 00:51. Показов 2707. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вечер добрый, помогите разобраться с шаблонами в с++
Нужно найти максимальных элемент массива
На просторах интернета нашел как сделать шаблон поиска макс элемента для одномерного массива
Кликните здесь для просмотра всего текста
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
#include "stdafx.h"
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;
template<typename T>
T maxx(const T *x, int s) {
    T max = x[0];
    for (int i = 0; i != s; i++)
        if (x[i]>max) {
            max = x[i];
        }
    return max;
}
int main() {
    srand(time(NULL));
    int n;
    cout << "Enter size of array ";
    cin >> n;
    int size = n;
    int *a = new int[size];
    for (int i = 0; i != size; i++) {
        a[i] = -10 + rand() % 20;
    }
    for (int i = 0; i != size; i++) {
        cout << a[i] << " ";
    }
    cout << endl;
    cout << "Max: " << maxx(a, size) << endl;
}

Вроде бы разобрался как что работает, нужно сделать такое же, только для дву- и тре-мерных массивов
Попытался сделать по аналогии для начала для двумерного массива, но при компиляции выдает ошибки про преобразования типов, вот код:
Кликните здесь для просмотра всего текста
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
#include "stdafx.h"
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;
template<typename T>
T maxx(const T *x, int s) {
    T max = x[0];
    for (int i = 0; i != s; i++)
        if (x[i]>max) {
            max = x[i];
        }
    return max;
}
template<typename T1>
T1 maxx2( T1 *y,int s1,int s2) {
    T1 max = y[0][0];
    for (size_t i = 0; i != s1; i++) {
        for (size_t j = 0; j != s2; j++) {
            if (y[i][j] > max) {
                max = y[i][j];
            }
        }
    }
    return max;
}
int main() {
    srand(time(NULL));
    int n;
    cout << "Enter size of array ";
    cin >> n;
    int size = n;
    int *a = new int[size];
    for (int i = 0; i != size; i++) {
        a[i] = -10 + rand() % 20;
    }
    for (int i = 0; i != size; i++) {
        cout << a[i] << " ";
    }
    cout << endl;
    cout << "Max: " << maxx(a, size) << endl;
 
    int m1, m2;
    cout << "Enter size of row";
    cin >> m1;
    cout << "Enter size of col";
    cin >> m2;
    const int size1 = m1;
    const int size2 = m2;
    int **b = new int*[size1];
    for (int i = 0; i != size1; i++) {
        b[i] = new int[size2];
    }
    for (int i = 0; i != size1; i++) {
        for (int j = 0; j != size2; j++) {
            b[i][j] = -10 + rand() % 20;
        }
    }
    for (int i = 0; i != size1; i++) {
        for (int j = 0; j != size2; j++) {
            cout << b[i][j] << "  ";
        }
    }
    cout << endl;
    cout << "Max: " << maxx2(b, size1, size2) << endl;
}

Помогите разобраться пожалуйста
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.03.2018, 00:51
Ответы с готовыми решениями:

Шаблон функции поиска максимального элемента
Шаблон функции поиска максимального элемента массива задается след.образом: template &lt;typename T&gt; T max(T *x, int len) { T...

Подпрограмма: Напишите функцию для поиска максимального элемента в указанной строке двумерного массива.
Напишите функцию для поиска максимального элемента в указанной строке двумерного массива. Сдвиньте в этом массиве все строки циклически...

Метод для поиска максимального отрицательного элемента одномерного массива
Написал метод, обращаюсь к нему в Main. Студия говорит: ни одна из перегрузок метода &quot;Max_negative&quot; не принимает &quot;0&quot;...

6
165 / 164 / 124
Регистрация: 19.01.2016
Сообщений: 594
Записей в блоге: 1
04.03.2018, 01:35
Лучший ответ Сообщение было отмечено ProgSad как решение

Решение

У вас же объявлен какой массив?
C++
1
int **b = new int*[size1];
А в шаблоне, в параметрах, чего-то не хватает.
C++
1
T1 maxx2( T1 /*?*/*y,int s1,int s2)
Чуть подправил вывод матрицы
C++
1
2
3
4
5
for (int i = 0; i != size1; i++) {
        cout<<endl;
        for (int j = 0; j != size2; j++) {
            cout << b[i][j] << "  ";
        }
И память освободить не помешает
C++
1
2
3
for (int i = 0; i < size1; i++) 
delete [] b[i];
delete a[] ;
И так как функция
C++
1
int main()
то должна что-то возвращать.
C++
1
return 0;
1
8 / 5 / 7
Регистрация: 15.02.2018
Сообщений: 36
04.03.2018, 23:13  [ТС]
Спасибо огромное, а как очистить память например, для трехмерного массива?
0
 Аватар для QuakerRUS
1469 / 1010 / 456
Регистрация: 30.10.2017
Сообщений: 2,799
04.03.2018, 23:18
ProgSad, двойной цикл.

C++
1
2
3
4
5
6
7
8
9
for (int i = 0; i < size1; i++)
{
    for (int j = 0; j < size2; j++)
        delete[] b[i][j];
 
    delete[] b[i];
}
 
delete[] b;
1
8 / 5 / 7
Регистрация: 15.02.2018
Сообщений: 36
04.03.2018, 23:25  [ТС]
Спасибо))
0
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
05.03.2018, 07:07
Цитата Сообщение от -ДоМоВоЙ- Посмотреть сообщение
то должна что-то возвращать.
она и возвращает 0, если явно не задано.
это написано в стандарте и легко проверить: http://rextester.com/KASO17613
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
05.03.2018, 07:49
Цитата Сообщение от -ДоМоВоЙ- Посмотреть сообщение
И так как функция
int main()
то должна что-то возвращать.
return 0;
ничего она никому не должна.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.03.2018, 07:49
Помогаю со студенческими работами здесь

Рекурсивный метод для поиска максимального и минимального элемента массива
Всем привет. Помогите доработать программу: Нужно написать рекурсивный метод для поиска максимального и минимального элемента массива...

Написать функцию поиска максимального элемента для массива типа void
#include &lt;stdio.h&gt; #include&lt;conio.h&gt; #include &lt;stdlib.h&gt; unsigned int fmax( int*a, unsigned int size){ int i; int max,...

В программе написать функции: вставки элемента, поиска максимального элемента, определения среднего арифметического элементов массива
В целочисленном массиве Х(N) после каждого четного числа вставить максимальный элемент массива. Найти среднее арифметическое элементов ...

Подпрограмма поиска максимального элемента одномерного массива.
Задача: Найти максимальные элементы одномерных массивов a,b,c и их номера. Подпрограмму поиска максимума оформить в виде процедуры. Ввод...

Рекурсивная функция поиска максимального элемента массива
Написать рекурсивную функцию для вычисления максимального элемента массива из п элементов. выдает ошибки: использована...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru