Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 26.11.2017
Сообщений: 4
1

В динамической памяти выделить место для сохранения двух массивов действительных чисел

24.06.2018, 18:14. Показов 943. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В динамической памяти выделить место для сохранения двух массивов действительных числл заданной размерности. С клавиатуры ввести элементы этих массивов, каждый из которых впорядеований по убыванию значений. Сформировать из введенных массивов один общий отсортированный по убыванию массив и напечатать его.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.06.2018, 18:14
Ответы с готовыми решениями:

Динамической памяти выделить место для сохранения двух массивов действительных чисел
В динамической памяти выделить место для сохранения двух массивов действительных числл заданной...

Что если для указателя на ноль выделить место в динамической памяти?
int* arr; arr = nullptr; arr = new int; for (int i = 0; i < 10; i++) { arr = i; } ...

Написать шаблон функции для сортировки массивов действительных и целых чисел
Заданы элементы массива. Написать шаблон функции для сортировки массивов действительных и целых...

Сколько значений переменных типа char можно записать в динамической памяти на место одной удаленной переменной
3 задача с++ Сколько значений переменных типа char можно записать в динамической памяти на место...

1
2305 / 1131 / 702
Регистрация: 25.04.2016
Сообщений: 3,222
25.06.2018, 02:49 2
Лучший ответ Сообщение было отмечено anastunia1808 как решение

Решение

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
#include <stdio.h>
#include <stdlib.h>
 
double ** create_arr2d (int, int);  // создаем double a[int][int]
void delete_arr2d (double **);      // освобождаем память, занятую a[int][int]
void fill_the_a2d (double **, int, int);    // заполняем массив с клавиатуры
void printf_arr2d (double **, int, int);    // выводим на экран
 
int main (void)
{
    // узнаем размеры массивов:
    int a, b, n, m;
    printf("First array:\n");
    printf("size1 = ");     scanf("%d", &n);
    printf("size2 = ");     scanf("%d", &m);
    printf("Second array:\n");
    printf("size1 = ");     scanf("%d", &a);
    printf("size2 = ");     scanf("%d", &b);
    // размеры не могут быть <= 0:
    if (n<1 || m<1 || a<1 || b<1) exit(EXIT_FAILURE);
 
    // создаем массивы:
    double ** x = NULL;
    if ((x = create_arr2d(n, m)) == NULL)
    {
        printf("Can't create array!\n");    // сообщаем об ошибке
        exit(EXIT_FAILURE);                 // выходим с кодом ошибки
    }
    double ** y = NULL;
    if ((y = create_arr2d(a, b)) == NULL)
    {
        printf("Can't create array!\n");
        delete_arr2d(x);        // освобождаем память, которую успели занять
        exit(EXIT_FAILURE);
    }
 
    // заполняем массивы значениями:
    printf("\nFill the first array:\n");
    fill_the_a2d(x,n,m);
    printf("\nFill the second array:\n");
    fill_the_a2d(y,a,b);
 
    // выводим на экран:
    printf("First array:\n");
    printf_arr2d(x, n, m);
    printf("Second array:\n");
    printf_arr2d(y, a, b);
 
    /* где-то здесь необходимо создать еще один массив, и заполнить его
     * отсортированными значениями, и вывести на экран. Алгоритмы для
     * создания и вывода на печать у вас уже есть, подумайте как сделать
     * сортировку. Успехов. :)
     * **************************************************************** */
 
    // освобождаем память, занятую массивами и выходим:
    delete_arr2d(x);
    delete_arr2d(y);
    /* где-то здесь необходимо освободить память, занятую третьим массивом */
    exit(EXIT_SUCCESS);
}
// ------------------------------------------------------------
// ----------------- создаем двумерный массив -----------------
double ** create_arr2d (int size1, int size2)
{
    int i;
    double ** z = NULL;
    if ((z = (double **) malloc(size1*sizeof(double *))) == NULL) return NULL;
    if ((z[0] = (double *) malloc(size1*size2 * sizeof(double))) == NULL)
    {
        free(z);
        return NULL;
    }
    for (i=1; i<size1; i++)
        z[i] = z[i-1] + size2;
    return z;
}
// ------------------------------------------------------------
// ------ освобождаем память, занятую двумерным массивом ------
void delete_arr2d (double ** a)
{
    free(a[0]);
    free(a);
}
// ------------------------------------------------------------
// --------- заполняем двумерный массив c клавиатуры ----------
void fill_the_a2d (double ** a, int size1, int size2)
{
    int i, k;
    for (i=0; i<size1; i++)
        for (k=0; k<size2; k++)
        {
            printf("arr[%d][%d] = ", i, k);
            scanf("%lf", &a[i][k]);
        }
}
// ------------------------------------------------------------
// ------------ выводим двумерный массив на экран -------------
void printf_arr2d (double ** a, int size1, int size2)
{
    int i, k;
    for (i=0; i<size1; i++)
    {
        for (k=0; k<size2; k++)
            printf("%6.2lf", a[i][k]);
        printf("\n");
    }
}
1
25.06.2018, 02:49
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.06.2018, 02:49
Помогаю со студенческими работами здесь

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

Функция вычисления суммы элементов двух действительных массивов
Можете написать функцию вычисления суммы элементов двух действительных массивов А={ai} та B={bi} с...

Сравнение двух строк с выделением динамической памяти - C++
Подскажите почему не работает код? Ввожу две разные строки и всегда выводит equal. Уже как только...

Созданть структуры для сохранения информации динамической матрицы
прошу помочь срочно --&gt; Созданть структуры для сохранения информации динамической матрицы (C++) ...


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

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