Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.07.2022, 13:45   #11
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

А зачем для инициализации гонять отдельный цикл. Не проще этот нолик присвоить перед третьим вложенным циклом в конструкции подсчета перемножения.
Код:
#include "iostream"
using namespace std;

int m1[3][3] = { {2,3,1},
              {4,1,3} ,
              {6,7,3} };
int m2[3][3] = { {4,4,1},
        {3,1,2},
        {5,1,1} };
int m3[3][3];

int main()
{
    for (int t = 0; t < 3; t++)    // Собственно, перемножение.
        for (int i = 0; i < 3; i++) {
            m3[t][j] = m1[t][0] * m2[0][i]; // инициализация
            for (int j = 1; j < 3; j++)
                m3[t][i] += m1[t][j] * m2[j][i];
        }



    int min_i = 3, min_j = 3, max_i = 3, max_j = 3; // Индекс заведомо выходит за границу матрицы
    for (int i = 0; i < 3; i++)    // Поиск минимального и максимального с запоминанием индексов
        for (int j = 0; j < 3; j++) {
            if (min_i * 3 + min_j >= 3 * 3 || m3[min_i][min_j] > m3[i][j]) {
                min_i = i; min_j = j;
            }
            if (max_i * 3 + max_j >= 3 * 3 || m3[max_i][max_j] < m3[i][j]) {
                max_i = i; max_j = j;
            }
        }



    for (int i = 0; i < 3; i++)  // Вывод
    {
        for (int j = 0; j < 3; j++)
            cout << m3[i][j] << "  ";
        cout << endl;
    }



    cout << "min = " << m3[min_i][min_j] << " ";
    cout << "index [" << min_i << ", " << min_j << "]" << endl;
    cout << "max = " << m3[max_i][max_j] << " ";
    cout << "index [" << max_i << ", " << max_j << "]" << endl;
}
Вот тут можно проверить результат

Последний раз редактировалось macomics; 13.07.2022 в 15:37.
macomics вне форума Ответить с цитированием
Старый 13.07.2022, 19:50   #12
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

sa1nts_eye, "перемножить матрицы" и "элементы результирующей матрицы вычислить с помощью выражения" в данном случае одно и то же. Вы зря отказались от обозначений размеров n, m, l, да еще и выбрали один размер 3, и массивы по-другому назвали - так вам же сложнее вникнуть и соотнести код с выражением. Но macomics добавил недостающее в ваш код.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перемножить все отрицательные элементы матрицы C++ Joesidorov Помощь студентам 1 04.01.2016 22:51
Не получается перемножить слово на байт camel5 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 17.11.2013 14:07
нужно перемножить 2 матрицы и вывести на экран. Юрий666 Паскаль, Turbo Pascal, PascalABC.NET 2 27.05.2012 18:25
Перемножить столбец Алекссс БД в Delphi 13 03.11.2011 16:28
как перемножить матрицы? phasha Помощь студентам 4 31.10.2011 15:44