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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.12.2020, 14:44   #1
apollon33
Пользователь
 
Регистрация: 18.09.2018
Сообщений: 14
По умолчанию Сравнение двух матриц на равенство

Всем доброго времени суток. Нужно выполнить сравнение двух матриц на равенство. Результат – номер первой
строки, где обнаружились не равные элементы. То есть, к этим двум функциям надо написать третью, которая сравнивала б эти матрицы. Ну,и аналогично вызвать её в main. Матрицы можно сравнить, только если они одинакового размера (я понимаю,что для этого нужно добавить условие, но это позже сделаю...)
Помогите, пожалуйста написать еще одну функцию, сравнивающую матрицы и вывод первой строки с неравными элементами. Никак не могу сообразить
Заранее огромное спасибо
Код:
#include<iostream>
using namespace std;
#include<stdlib.h>
#include <windows.h> //прототип функций русификации
#include<iomanip> //для форматированного вывода матрицы
void InMatr(int* p, int n, int m)
{
    int i, j;
    for (i = 0; i < n; i++)
        for (j = 0; j < m; j++)
            *(p + i * m + j) = 1000 - (rand() % 2000);
    return;
}
void OutMatr(const int* p, int n, int m)
{
    int i, j;
    cout << endl;
    for (i = 0; i < n; i++)
    {
            for (j = 0; j < m; j++)
                cout << setw(5) << p[i * m + j];
        cout << endl;
    }
    return;
}
 
int main(void)
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    int n, m, l, j;
    cout << "Введите  размер первой матрицы" << endl;
    cin >> n >> m;
    cout << "Введите размер второй матрицы" << endl;
    cin >> l >> j;
    int* A = new int[n * m]; //объявляем матрицу динамически
    int* B = new int[l *j]; //объявляем матрицу динамически
    InMatr(A, n, m);
    InMatr(B, l, j);
    cout << "Первая матрица:" << endl;
    OutMatr(A, n, m);
    cout << "Вторая матриц:" << endl;
    OutMatr(B, l, j);
    system("pause");
    return 0;
}
apollon33 вне форума Ответить с цитированием
Старый 11.12.2020, 09:12   #2
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

Если одинакового размера то memcmp сразу даст ответ равны они или нет.
Для получения строки где неверно сделайте сравнение. У вас же есть функция заполнения матрицы. Добавьте туда второй указатель и сравнивайте значения. Элементарно же ... если конечно сами писали функции.
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С++ возведение матриц в степень с использованием функции перемножения двух матриц tmr_3112 Visual C++ 1 22.11.2015 23:08
подскажите, как проверить равенство двух массивов на C# SERGO123 C# (си шарп) 1 08.01.2014 17:38
Сравнение матриц Puhovoi Помощь студентам 6 17.09.2011 16:53
Сравнение матриц xakkkkker Помощь студентам 0 02.12.2010 22:57