Как сделать цикл в цикле С++
Передо мной поставлена задача: я должен организовать вывод чисел в форме матрицы и обеспечить приравнивание столбца матрицы к строчке. Я знаю, что я должен сделать цикл в цикле. 1 цикл будет проверять столбец, а 2 будет искать такую же строчку. Вот только проблема: я не знаю, как это сделать и как правильно записать код.
Мне надо сделать это для матрицы NxN, и искать я должен одинаковые строчки и столбцы. Также программа в конце должна вывести количество одинаковых столбцов и строк. Например, матрица 3х3:
1 2 3
2 3 1
3 2 1
Вот поскольку в этой матрице одинаковые первый столбец и первая строка, то в конце программа должна показать мне, что мое k = 1. Если бы одинаковые были 2 столбец и вторая строчка, то k равно 2. Сам я сумел только организовать вывод введённых чисел в форме матрицы. Вот код:
#include <iostream>
using namespace std;
int main()
{
setlocale(LC_ALL, "RUS");
int i, j, N, a[20][20];
cout << "N=";
cin >> N;
cout << "Input matrix A \n";
for (i = 0; i < N; i++)
for (j = 0; j < N; j++)
cin >> a[i][j];
cout << "matrix A \n";
for (i = 0; i < N; i++)
{
for (j = 0; j < N; j++)
cout << a[i][j] << "\t";
cout << endl;
}
system("pause");
return 0;
}
Ответы (1 шт):
#include <iostream>
using namespace std;
const unsigned int DIM = 4;
int main()
{
int count = 0;
int arr[DIM][DIM];
// Заполнение массива
for(int i = 0; i < DIM; i++)
for(int j = 0; j < DIM; j++)
cin >> arr[i][j];
// Вывод массива
for(int i = 0; i < DIM; i++)
{
for(int j = 0; j < DIM; j++)
cout << arr[i][j] << ' ';
cout << endl;
}
cout << endl;
for(int i = 0; i < DIM; i++)
{
count = 0;
for(int j = 0; j < DIM; j++)
if(arr[i][j] == arr[j][i])
count++;
if(count == DIM)
cout << i + 1 << " строка и " << i + 1 << " столбец равны" << endl;
}
return 0;
}
Как-то так... Пробуйте.
P.S. Это при условии, что И в сравниваемой строке И в сравниваемом столбце цифры НЕ повторяются (судя по вашим примерам - так и есть).