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

Описать двумерный массив как одномерный, с расчётом смещения элемента массива по линейной формуле

24.02.2022, 12:53. Показов 2122. Ответов 3

Студворк — интернет-сервис помощи студентам
Описать двумерный массив как одномерный, с расчётом смещения элемента массива по линейной формуле

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
#include <iostream>
 
using namespace std;
 
void RandArray(int cnt, double **Array) // функция генерации псевдорандомных чисел без повторения
{
    for (int i = 0; i < cnt; i++)
        for (int j = 0; j < cnt; j++)
            Array[i][j] = i*cnt+j; 
}
 
void PrintArray(int cnt, double **Array) // функция вывода матрицы 
{
    for (int i = 0; i < cnt; i++)
    {
        for (int j = 0; j < cnt; j++)
        {
            cout << " " << Array[i][j];
        }
        cout << endl;
    }
    cout << endl;
}
 
void Swap(double &a, double &b) // функция обмена двух значений
{
    double tmp = a; // промежуточная переменная
    a = b;
    b = tmp;
}
 
void Change(int cnt, double **Array) // функция замены центрального элемента с максимальным среди двух диагоналей
{
    double max = Array[0][0]; // максимальный элемент, изначально равен 0 по обоим индексам элементу матрицы
    int maxI = 0; // его индекс по i
    int maxJ = 0; // его индекс по j
 
    for (int i = 0; i < cnt; i++)
        for (int j = 0; j < cnt; j++)
            if ((i == j || j == cnt - i - 1) && Array[i][j]>max) // если элемент находится на одной из диагоналей и больше текущего максимального
            {
                max = Array[i][j]; // максимальный становится им
                maxI = i; // индекс i максимального элемента тоже меняется
                maxJ = j; // ну и индекс j
            }
    Swap(Array[cnt / 2][cnt / 2], Array[maxI][maxJ]); // меняем центральный элемент с максимальным по двум диагоналям
}
 
int main()
{
    int cnt; cout << " Enter CNT = "; cin >> cnt; // вводим длинну матрицы
 
    double **Array = new double *[cnt]; // создаем динамичный двумерный массив действительных чисел
    for (int i = 0; i < cnt; i++)
        Array[i] = new double[cnt];
 
    RandArray(cnt, Array); // заполняем матрицу псевдослучайными значениями без повторения
    PrintArray(cnt, Array); // выводим матрицу
 
    Change(cnt, Array); //заменa центрального элемента с максимальным среди двух диагоналей
 
    PrintArray(cnt, Array); // выводим матрицу
 
    return 0; // если Visual Studio
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.02.2022, 12:53
Ответы с готовыми решениями:

элементы одномерного массива K(T) получаются расчетом по формуле
элементы одномерного массива K(T) получаются расчетом по формуле K(T)= 4sin(T)+5cos(T/2), где T-позиция элемента в массиве K(T). Найдите...

Элементы одномерного массива T(K) получаются расчетом по формуле
. Элементы одномерного массива T(K) получаются расчетом по формуле T(K)= tg(2K)-Kcos(K), где K - позиция элемента в массиве T(K)....

Console Application Описать одномерный и двумерный массивы Показать типовые действия с элементами массива
4. Создать Console Application. Описать одномерный и двумерный массивы. Типовые действия с элементами массива

3
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
24.02.2022, 14:13
При чем тут приведенный вами код ?

Цитата Сообщение от RaveRoaR Посмотреть сообщение
с расчётом смещения элемента массива по линейной формуле
Где сама формула ?
0
0 / 0 / 0
Регистрация: 25.10.2021
Сообщений: 68
24.02.2022, 16:20  [ТС]
В этом и проблема, что этой формулы нету
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
24.02.2022, 18:14
Цитата Сообщение от RaveRoaR Посмотреть сообщение
В этом и проблема, что этой формулы нету

Если проблема только в этом, то держите.

https://www.cyberforum.ru/cgi-bin/latex.cgi?k = i*N + j
где k - индекс элемента одномерного массива.
i,j - индексы доступа как к матрице
N,M - размерность матрицы, рядов , столбцов соответственно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.02.2022, 18:14
Помогаю со студенческими работами здесь

Добавление элемента в динамический массив - как описать проверку необходимости расширения массива
Уважаемые форумчане. помогите не могу реализовать добавление элемента в дин.массив. - не могу описать проверку необходимости расширения...

Сформировать одномерный массив и двумерный массив. Выполнить обработку двумерного массива
Одномерный массив-отсортировать по возрастанию только чётные элементы массива; Двумерный массив- перевернуть все нечётные строки матрицы;...

Дан двумерный массив. Сформировать одномерный массив только из четных элементов двумерного массива
Последний раз прошу, пожалуйста

Ввести двумерный массив 10х10 и создать одномерный массив с упорядоченными по убыванию элементами двумерного массива.
Здравствуйте, срочно нужна помощь! 1. Ввести двумерный массив 10х10 и создать одномерный массив с упорядоченными по убыванию...

Дан двумерный массив Х(6,6). Найти минимальное значение каждого столбца массива и записать их в одномерный массив А
1. Дан двумерный массив Х(6,6). Найти минимальное значение каждого столбца массива и записать их в одномерный массив А. 2.. Выполнить...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru