Как реализовать сравнение n-ного столбца и n-ного ряда матрицы?
Мне нужно сделать код, в котором реализовано сравнение n-ных строк и n-ных столбцов матрицы между собой и вывод на экран количества одинаковых столбцов и строк? Сам я смог реализовать запись чисел в виде матрицы (код скину под сообщением). Мне нужно, чтобы кто-то помог доработать код согласно условиям, которые я привел выше.
Обещанный код:
#include <iostream>
using namespace std;
int main()
{
setlocale(LC_ALL, "RUS");
int i, j, N, M, a[20][20];
cout << "N=";
cin >> N;
cout << "M=";
cin >> M;
cout << "Input matrix A \n";
for (i = 0; i < N; i++)
for (j = 0; j < M; j++)
cin >> a[i][j];
cout << "matrix A \n";
for (i = 0; i < N; i++)
{
for (j = 0; j < M; j++)
cout << a[i][j] << "\t";
cout << endl;
}
system("pause");
return 0;
}
Ответы (1 шт):
Автор решения: Mikhailo
→ Ссылка
int main() {
int N, M, a[20][20];
cout << "N=";
cin >> N;
cout << "M=";
cin >> M;
if (N != M) {
cout << "Длины строк не равны длинам столбцов, одинаковых нет\n";
return 0;
}
cout << "Input matrix A \n";
for (int i = 0; i < N; i++)
for (int j = 0; j < M; j++)
cin >> a[i][j];
cout << "matrix A \n";
for (int i = 0; i < N; i++) {
for (int j = 0; j < M; j++)
cout << a[i][j] << "\t";
cout << endl;
}
int count = 0;
for (int i = 0; i < N; ++i) {
bool eql = true;
for (int j = 0; j < M; ++j) {
if (a[i][j] != a[j][i]) {
eql = false;
break;
}
}
if (eql) count++;
}
cout << count << " одинаковых столбцов и строк\n";
}