0 / 0 / 1
Регистрация: 27.10.2015
Сообщений: 36
1

Массив в памяти разместить динамически (с использованием операций new и delete)

12.11.2018, 09:43. Показов 1581. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В двухмерном целочисленном массиве (размеры массива N, M и значения его элементов вводить с клавиатуры) найти указанное значение.
Массив в памяти разместить динамически (с использованием операций new и delete), ввод исходных данных и вывод полученных результатов выполнить в основной функции, а решение задачи оформить в виде отдельной функции пользователя. Не использовать глобальных переменных.
Найти количество отрицательных и положительных элементов массива.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.11.2018, 09:43
Ответы с готовыми решениями:

Динамические массивы создаются в динамической области памяти с использованием операций NEW и DELETE
Срочно нужна помощь! Массивы создаются в динамической области памяти с использованием операций NEW...

В заданном массиве целых чисел элементы с номерами от 1 до K динамически разместить в памяти и распечатать
Здравствуйте! Помогите создать динамический массив целых чисел. Дан масив размера N и целые числа...

Элементы, находящиеся левее локального минимума массива, разместить в памяти динамически и распечатать
Дан массив размера N. Найти номер его первого локального минимума (локальный минимум – это элемент,...

Динамическое выделение памяти под массив структур (new/delete)
Люди добрые, подскажите пожалуйста, где в моем коде закралась ошибка? Интернет перечитал, во всех...

9
1212 / 706 / 335
Регистрация: 22.02.2018
Сообщений: 2,057
Записей в блоге: 2
12.11.2018, 10:18 2
Цитата Сообщение от deadpool98 Посмотреть сообщение
операций new и delete
это операторы С++, Вам наверное, в этот раздел надо. В Си используются malloc/calloc и free
0
0 / 0 / 1
Регистрация: 27.10.2015
Сообщений: 36
12.11.2018, 10:30  [ТС] 3
А как тогда при помощи malloc/calloc и free
0
3881 / 2479 / 418
Регистрация: 09.09.2017
Сообщений: 10,874
12.11.2018, 11:18 4
Лучше начните с того, чтобы показать что у вас уже сделано и с чем возникли проблемы. Вы же за помощью пришли а не за халявой.
0
2305 / 1131 / 702
Регистрация: 25.04.2016
Сообщений: 3,220
12.11.2018, 12:19 5
а может и за халявой
0
3881 / 2479 / 418
Регистрация: 09.09.2017
Сообщений: 10,874
12.11.2018, 12:47 6
stake-k26, пусть напишет это прямым текстом, с полным пониманием что многим здесь неинтересно решать школьные задачки для лентяев, от которых потом даже "спасибо" не дождешься.
0
2305 / 1131 / 702
Регистрация: 25.04.2016
Сообщений: 3,220
13.11.2018, 16:50 7
deadpool98, держите
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
#include <iostream>
using namespace std;
 
int search (int**, size_t, size_t, int);
int maximar(int**, size_t, size_t);
int minimar(int**, size_t, size_t);
 
int main (void)
{
    int n, m;
 
    /* получаем n и m с клавиатуры */
    cout << "input rows: ";
    cin >> n;
    cout << "input cols: ";
    cin >> m;
 
    /* тут проверяем размеры массива */
    if (n<1) return 1;  // как вариант, и кстати неполный
 
    /* размещаем динамически с использованием операций new */
    int ** a = new int * [n];
    a[0] = new int[n * m];
    for (size_t x=1; x<n; x++)
        a[x] = a[x-1] + m;
 
    /* значения элементов массива вводим с клавиатуры */
        // задача чрезвычайно трудная, но вам придется с ней как-то справиться
 
    /* вызываем функцию поиска указанного занчения (кстати а какого именно?) */
    int val = 2;
    if (search(a,n,m,val)) cout << "YES" << endl;
 
    /* вызываем функцию поиска максимального значения */
    int max = maximar(a, n, m);
    /* вызываем функцию поиска минимального значения */
    int min = minimar(a, n, m);
 
    /* выводим реультаты на экран: */
    cout << "Min: " << min << endl;
    cout << "Max: " << max << endl;
 
    /* освобождаем память с помощью delete */
    delete [] a[0];
    delete [] a;
 
    /* конец программы */
    return 0;
}
// ----------------------------------------------------------------------------
// -------------- поиск заданного значения val в массиве a[n][m] --------------
int search (int ** a, size_t n, size_t m, int c)
{
    size_t i, k;
    for (i=0; i<n; i++)
        for (k=0; k<m; k++)
            if (a[i][k] == c) return 1;
    return 0;
}
// ----------------------------------------------------------------------------
// -------------- поиск максимального значения в массиве a[n][m] --------------
int maximar(int ** a, size_t n, size_t m)
{
    // эту функцию вам придется написать самостоятельно
    return 0;
}
// ----------------------------------------------------------------------------
// -------------- поиск минимального значения в массиве a[n][m] --------------
int minimar(int ** a, size_t n, size_t m)
{
    // эту функцию вам тоже придется написать самостоятельно
    return 0;
}
0
0 / 0 / 1
Регистрация: 27.10.2015
Сообщений: 36
14.11.2018, 11:11  [ТС] 8
Спасибо. Но я в самой теме неправильно указал, мне надо было написать на Си и при помощи malloc/calloc и free. Не могу разобраться. На С++ я сам знал как.
0
1212 / 706 / 335
Регистрация: 22.02.2018
Сообщений: 2,057
Записей в блоге: 2
14.11.2018, 12:58 9
Цитата Сообщение от deadpool98 Посмотреть сообщение
помощи malloc/calloc и free
Почти так же, как и на С++
C
1
2
3
4
5
6
7
8
9
10
11
12
  
 
  int **a
 //размещаем
  a = (int**)malloc(n * sizeof(int*));
  
  for (i = 0; i<n; i++)  
    a[i] = (int*)malloc(m * sizeof(int));
//.........................
  for (i = 0; i < n; i++)  // цикл по строкам
    free(a[i]);   // освобождение памяти под строку
  free(a);
0
2305 / 1131 / 702
Регистрация: 25.04.2016
Сообщений: 3,220
14.11.2018, 18:25 10
deadpool98, почитайте на досуге:

1. Корректное освобождение памяти
2. Написать функцию, которая получала бы два двумерных динамических массива ...

в первой теме рассматриваются различные способы, во второй рассматриваются не только способы, но и их плюсы и минусы.
0
14.11.2018, 18:25
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.11.2018, 18:25
Помогаю со студенческими работами здесь

Выделение памяти динамически под массив
Есть программа, нужно выделить динамически память под массив, все попытки сделать это...

Сгенерировать случайным образом массив целых чисел и разместить его в динамической памяти
Сгенерировать случайным образом массив целых чисел. Разместить массив в динамической памяти. Найти...

Классы. Объявить массив динамически и сделать указатель на объект в динамической памяти
Я создал классы: ПЕРСОНА, служащий, роботодатель, инженер. Но мне нужно в программе (после int...

Нужно ли удалять указатель на символьный массив созданный в куче(динамически распределяемой памяти)
Подскажите, программа состоит из 2 функций (main и fun), программа меняет значение указателя на...

Можно ли разместить переменную в нужную ячейку памяти и реально ли хранить данные, разбросанными по памяти?
Добрый день. Не могу найти информацию по двум вопросам : 1) могу ли я разместить переменную в...

Массив. Переделать код с использованием динамической памяти
Помогите переделать код с использованием динамической памяти и с выбором сколько строк и столбцов...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru