Salve a tutti... stavo provando ad affrontare una prova d'esame degli anni passati per esercitarmi, ma sto riscontrando delle difficoltà. Il testo è:
Siano dati due file testo contenenti la dimensione e gli elementi di una matrice quadrata di numeri interi. Scrivere un programma che individui le righe e le colonne delle due matrici contenenti gli stessi elementi.
Ad esempio:
file1:
3
1 2 3
4 5 6
1 2 4
file2:
3
1 2 3
4 2 3
1 2 3
il cout sarà : la riga 0 di mat 1 è uguale alla riga 0 e alla riga 2 di mat2; la colonna 0 di mat1 è uguale alla colonna 0 di mat2.
Ho iniziato creando due matrici e collocando al loro interno gli elementi dei file.
Ho iniziato a pensare l'algoritmo per confrontare le sole righe (per poi successivamente riadattarlo anche per le colonne), ma non funziona quindi credo di aver sbagliato qualcosa....
void confronta_righe(int** matrice1,int** matrice2,int& righe,int& colonne)
{
int j=0;
bool ok = true;
for(int i=0;i<righe;i++)
{
for(int c=0;c<righe;c++)
{
j=0;
while(matrice1[i][j]==matrice2[c][j]&& j<colonne)
{
j++;
if(matrice1[i][j]==matrice2[c][j])
ok=false;
}
if(ok)
cout<<"sono uguali";
}
}
}
e ho anche provato l'alternativa
void confronta_righe(int** matrice1,int** matrice2,int& righe,int& colonne)
{
int j=0;
int contatore=0;
for(int i=0;i<righe;i++)
{
for(int c=0;c<righe;c++)
{
j=0;
if(matrice1[i][j]==matrice2[c][j])
{
contatore=1;
do
{
j++;
if(matrice1[i][j]==matrice2[c][j])
{
contatore++;
}
}
while(matrice1[i][j]==matrice2[c][j])
if(contatore==colonne)
cout<<"sono uguali";
}
}
}
Ma nessuno dei due rileva le righe uguali quindi ho evidentemente sbagliato qualcosa che non riesco proprio a capire dato che ci sto sopra da ore ormai!
un aiuto? grazie mille per eventuali risposte