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

Как заменить размер матриц?

01.07.2020, 21:52. Показов 431. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как сделать чтобы чтобы при вводе матриц 4x4 3x3 2x2 в другие матрицы дописывались 1 1, вместо пустых символов.
Сделал штуку, которая умножает n*m и находит самое большое число и заменяет n, m на самые большие, но дальше не получается. там образуются 6752526 такие числа и хз как заполнить числами
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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
#include <iostream>
using namespace std;
void normal(int n, int m, int z, int x, int f, int h)
{
    int a, b, c;
    a = n * m;
    b = z * x;
    c = f * h;
    int max = a;
    if (b > max)
    {
        max = b;
    }
    if (c > max)
    {
        max = c;
    }
    if (max == a)
    {
        n = n;
        m = m;
    }
    if (max == b)
    {
        n = z;
        m = x;
    }
    if (max == c)
    {
        n = f;
        m = h;
    }
}
void add(int* ptx, int n, int m)
{
    int i, j;
    for (i = 0; i < n; i++)
    {
        printf("\n");
        for (j = 0; j < m; j++)
        {
            *(ptx + i * m + j) = 0;
            *(ptx + i * m + j) = rand() % 10 + 1;
            printf("  %d ", *(ptx + i * m + j));
        }
    }
 
    printf("\n--------------------------------\n");
}
void add5(int* ptx, int* ptx1, int n, int m)
{
    int i, j;
    for (i = 0; i < n; i++)
    {
        printf("\n");
        for (j = 0; j < m; j++)
        {
            *(ptx1 + i * m + j) = 0;
            *(ptx + i * m + j) = *(ptx + i * m + j) + *(ptx1 + i * m + j);
            printf("  %d ", *(ptx + i * m + j));
        }
    }
 
    printf("\n--------------------------------\n");
}
void tya(int* ptx, int n, int m, int* result)
{
    int i, j;
    for (i = 0; i < n; i++)
    {
        printf("\n");
        for (j = 0; j < m; j++)
        {
            *(result +i * m + j) = *(ptx + i * m + j) * 2 ;
            printf("  %d ", *(result + i * m + j));
        }
    }
}
 
void bc(int* ptx1, int* ptx2, int n, int m, int* result)
{
    int i, j;
    for (i = 0; i < n; i++)
    {
        printf("\n");
        for (j = 0; j < m; j++)
        {
            *(result + i * m + j) = *(ptx1 + i * m + j) * *(ptx2 + i * m + j);
            printf("  %d ", *(result + i * m + j));
        }
    }
}
void mins(int* ptx1, int* ptx2, int* ptx3, int n, int m, int* result)
{
    int i, j;
    for (i = 0; i < n; i++)
    {
        printf("\n");
        for (j = 0; j < m; j++)
        {
            *(result + i * m + j) = *(ptx1 + i * m + j) - *(ptx2 + i * m + j) + *(ptx3 + i * m + j);
            printf("  %d ", *(result + i * m + j));
        }
    }
}
/*Основная  функция*/
void main()
{
    setlocale(LC_ALL, "Russian");
    int a[20][20], b[20][20], c[20][20];
    int a1[20][20], b1[20][20], c1[20][20];
    int resultA[20][20], resultBC[20][20], result[20][20];
    int n, m , z, x, f, h;
    printf("Введите NxM для А\n");
    scanf_s("%d %d", &n, &m);
    printf("ведите NxM для B\n");
    scanf_s("%d %d", &z, &x);
    printf("ведите NxM для C\n");
    scanf_s("%d %d", &f, &h);
    normal(n, m, z, x, f, h);
    printf("Матрица А\n");
    add(&a[0][0], n, m);
    printf("Матрица B\n");
    add(&b[0][0], z, x);
    printf("Матрица C\n");
    add(&c[0][0], f, h);
    printf("Матрица 2A\n");
    tya(&a[0][0], n, m, &resultA[0][0]); 
    printf("\nМатрица B*C\n");
    bc(&b[0][0], &c[0][0], n, m, &resultBC[0][0]);
    printf("\nОперация 2A - BC + C\n");
    mins(&resultA[0][0], &resultBC[0][0], &c[0][0], n, m, &result[0][0]);
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.07.2020, 21:52
Ответы с готовыми решениями:

Матричный калькулятор, как добавить ограничение на одинаковый размер матриц?
Как нанести ограничения на столбцы и строки при сложении матриц? То есть, мы можем сложить только те матрицы где количество столбцов и...

Даны 2 матрицы. Найти максимальные элементы матриц. Заменить их суммой четных элементов матриц
Даны 2 матрицы. Найти максимальные элементы матриц. Заменить их суммой четных элементов матриц Помогите пожайлуста

Какой максимальный размер матриц можно задать для перемножения?
Привет кодеры! Тут вопрос такой. Решил я перемножить матрицы и заинтересовался какой максимальный допустимый размер матрицы я могу задать...

3
151 / 103 / 49
Регистрация: 21.11.2019
Сообщений: 285
02.07.2020, 08:31
Попробуй более подробно и понятно сформулировать проблему


А функция normal не делает абсолютно ничего - ты в нее передаешь копии переменных, как-то там меняешь эти копии и на этом все, main этих изменений не увидит.
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
02.07.2020, 15:40
Цитата Сообщение от shooker Посмотреть сообщение
Как сделать чтобы чтобы при вводе матриц 4x4 3x3 2x2 в другие матрицы дописывались 1 1, вместо пустых символов.
Заполни сразу эти матрицы тем, что тебе нужно - нулями
C++
1
int a[20][20] = {0}, b[20][20] = {0}, c[20][20] = {0};
Либо единицами
C++
1
2
3
std::fill_n(a[0], sizeof(a) / sizeof(a[0][0]), 1);
std::fill_n(b[0], sizeof(b) / sizeof(b[0][0]), 1);
std::fill_n(c[0], sizeof(c) / sizeof(c[0][0]), 1);
0
3 / 3 / 0
Регистрация: 25.09.2016
Сообщений: 118
02.07.2020, 20:13  [ТС]
уже реализовал
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.07.2020, 20:13
Помогаю со студенческими работами здесь

Реализовать алгоритм Штрассена-Винограда с возможностью указывать размер для матриц
Не получается решить эту задачу. Мне не понятен смысл рекурсии. То есть 4х4 более менее, а когда матрица 8х8, нет идей как разделить эти...

OpenGL - Как отобразить текстуру так, чтобы её размер в окне был таким же как и реальный размер
Пишу 2D игру на OpenGL+Tao.OpenGL и столкнулся с такой проблемой: допустим есть картинка с размерами 106x182(она в архиве) пикселей и...

Как ограничить размер ListBox размером окна (расползается на весь размер)?
Вроде простой вопрос, а что то закопался. Есть Page, в ней Grid, в нем ListBox Так вот когда ListBox заполняется данными, ListBox...

Как в IntelliJ IDEA увеличить размер (размер редактора, кода)?
как в IntelliJ IDEA увеличит размер (размер редактора, кода)?

Как увеличить размер поля input на полный размер ячейки td
Добрый день. Высота input имеет явно меньше ячейки td. &lt;table style='border-collapse:collapse;border-spacing:0;border:3px solid...


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

Или воспользуйтесь поиском по форуму:
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