Мне нужно написать функцию:
void function (int * a [], int sq), проверяющая, симметрична ли квадратная матрица в квадратных градусах (относительно) к главной диагонали (слева вверху - справа внизу) и выполняем любое преобразование этой матрицы.
Моя основная :
#include <iostream>
using namespace std;
void function(int* a[], int sq);
int main() {
const int sq = 10;
int a[sq][sq];
int *tab[sq];
for (int i = 0; i < 11; i++) {
tab[i] = a[i];
}
function(tab,sq);
return 0;
}
Моя функция :
void function(int* a[], int sq) {
cout << "tell me the number and i give you (sq x sq) matrix:";
cin >> sq;
for(int i = 0; i < sq; i ++) {
for(int j = 0 ; j < sq; j++) {
cin >> a[i][j];
}
}
// 3 7 8 2
// 7 4 5 5
// 8 2 1 6
// 2 5 6 1
cout << "Matrix is " << sq << " degree:" << endl;
for(int i = 0; i< sq; i++) {
for(int j = 0; j < sq; j++) {
if(a[0][j] == a[i][0] && a[i-1][j] == a[i][j-1] ) {
cout << a[i][j] << " "; // if symetrical
} else {
cout << a[j][i] << " "; //if not, lets do transposition
}
}
cout << endl;
}
}
Пример :
// 3 7 8 2
// 7 4 5 5
// 8 2 1 6
// 2 5 6 1
Это симметрично и должно дать мне вывод :
Матрица 4 степени:
3 7 8 2
7 4 5 5
8 2 1 6
2 5 6 1
Но она выполняет транспонирование и дает мне:
Матрица 4 степени:
3 7 8 2
7 4 2 5
8 5 1 6
2 5 6 1
Если я понимаю содержание упражнения. ..