Matrice Trasposta, variabile bool non cambia valore

di il
2 risposte

Matrice Trasposta, variabile bool non cambia valore

Buona sera a tutti ragazzi, oggi nella risoluzione di questo esercizio mi sono imbattuto in questo problema, ovvero nella funzione trasposta il valore booleano simmetrica non viene posto a false, ovvero se inserisco una matrice che non sia simmetrica essa darà come output che per l'appunto lo è. Credo che il problema sia dovuto ai due cicli annidati che fa il paragone tra le due matrici, anche se guardando la risoluzione del libro è la stessa. Ringrazio in anticipo per il vostro aiuto

#include <iostream>
using namespace std;
const int n = 3;

void inputMatrice(int matrice[][n]);
void trasposta(int matrice[][n]);

int main()
{
	int matrice[n][n];
	inputMatrice(matrice);
	trasposta(matrice);
}

void inputMatrice(int matrice[][n])
{
	cout << "Inserire gli elementi della matrice n x n: " << endl;
	for(int i = 0; i < n; i++)
		for (int j = 0; j < n; j++)
			{
				cout << "Riga: " << i << "Colonna: " << j << "\t"; cin >> matrice[i][j];
			}
	cout << endl;
	for(int i = 0; i < n; i++)
		{
			for (int j = 0; j < n; j++)
				cout << matrice[i][j] << " ";
				
			cout << endl;
		}
}

void trasposta(int matrice[][n])
{
	bool simmetrica = true;
	for (int i = 0; i < n && simmetrica; i++)
		for (int j = 0; j < i && simmetrica; j++)
			if(matrice[i][j] != matrice[j][i])
				simmetrica = false;
				
	if (simmetrica = false) cout << "La matrice non e' simmetrica" << endl;
	else cout << "La matrice e' simmetrica" << endl;
}

2 Risposte

Devi accedere o registrarti per scrivere nel forum
2 risposte