Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
Тарманов
0 / 0 / 0
Регистрация: 07.02.2018
Сообщений: 17
1

Динамическое распределение памяти

14.02.2018, 23:58. Просмотров 838. Ответов 2
Метки нет (Все метки)

Здравствуйте, помогите в решении задачи.

Дана действительная квадратная матрица порядка n. Найти и вывести наибольшее из значений элементов, расположенных в заштрихованной части матрицы:
Матрица размещается в памяти динамически, значение n вводится по запросу с клавиатуры. В конце работы программы освободить выделенную память. Вывести исходную матрицу.
0
Изображения
 
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.02.2018, 23:58
Ответы с готовыми решениями:

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

Динамическое распределение памяти
#include <stdio.h> #define NUM 5 #define PREDM 1 typedef struct { char fam,name ; int...

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

Динамическое распределение памяти в языке С
Помогите, пожалуйста решить задачу на С. В программе определите и инициализируйте переменную X...

Динамическое распределение памяти для символьной строки
Объясните, пожалуйста, почему при динамическом распределнии памяти под символьный массив у меня все...

2
stake-k26
659 / 456 / 349
Регистрация: 25.04.2016
Сообщений: 1,312
15.02.2018, 04:54 2
Лучший ответ Сообщение было отмечено Тарманов как решение

Решение

Ну что ж, вот вам шаблон для работы с двумерными массивами:
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
#include <stdio.h>
#include <stdlib.h>
 
void TestPrintArray (int **, int, int); // печать массива на экран
 
int main (void)
{
    int m, n;   // размеры двумерного массива A[M][N]
 
    /* *** узнаем размеры массива *** */
    do{
        printf("m = ");
        scanf("%d", &m);
    }while(m < 1);          // размер не может быть нулевым или отрицательным
    n = m;      // в примере квадратный массив, т.е. M равно N
 
    /* *** объявляем массив *** */
    int ** a;   // указатель на будущий массив
    // запрашиваем память под массив указателей:
    if ((a = (int **) malloc(m * sizeof(int*))) == NULL) return -1;
    // в первом указателе размещаем память под весь массив:
    a[0] = (int*) malloc(m * n * sizeof(int));
    if (a[0] == NULL)       // если память не выделена, выходим
    {
        free(a);
        return -1;
    }
    // переписываем адреса указателей:
    size_t k;
    for (k=1; k<m; k++)
    {
        a[k] = a[k-1] + n;
    }
 
    /* *** заполняем ячейки массива значениями *** */
    int i, j;
    for(i=0; i<m; i++)
    {
        for(j=0; j<n; j++)
        {
            a[i][j] = i+j;
        }
    }
 
    /* *** пример передачи массива в функцию *** */
    TestPrintArray(a, m, n);    // передаем массив и его размеры
 
    /* *** освобождаем память, занятую массивом *** */
    free(a[0]);
    free(a);
 
    /* *** конец программы *** */
    return 0;
}
// -------- тестовая функция для печати массива на экран --------
void TestPrintArray (int ** arr, int rows, int cols)
{
    int i, j;
    for (i=0; i<rows; i++)
    {
        for (j=0; j<cols; j++)
        {
            printf("%3d", arr[i][j]);
        }
        printf("\n");
    }
}
Алгоритм поиска максимального значения уровня детского сада, и думаю вы вполне в состоянии осилить его самостоятельно.

Хотя.. могу посоветовать как следует посмотреть на рисунок и подумать над тем что такое главная и побочная диагональ. И как их можно описать.. Т.е. при каком условии диагональ будет главной, а при каком - побочной.
1
Тарманов
0 / 0 / 0
Регистрация: 07.02.2018
Сообщений: 17
16.02.2018, 00:38  [ТС] 3
Получилось
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.02.2018, 00:38

Обработка массивов данных. Указатели. Динамическое распределение памяти
Помогите написать коды на си 1.Найти максимальный по модулю элемент массива. 2. Найти сумму...

Динамическое распределение памяти: программа, вылетает на вводе непосредственно первого элемента массива
Исправте пожалуйста, вылетает на вводе непосредственно первого элемента массива из символов!...

Распределение памяти для выделения и освобождения блоков памяти внутри запрошенного пула
В программе малые&quot;дыры&quot; избегают,что нужно сделать что бы малые &quot;дыры&quot; не избегались.... #...


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

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

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