Comparer deux matrices [Résolu]

Signaler
Messages postés
70
Date d'inscription
mercredi 1 octobre 2008
Statut
Membre
Dernière intervention
17 avril 2013
-
Messages postés
70
Date d'inscription
mercredi 1 octobre 2008
Statut
Membre
Dernière intervention
17 avril 2013
-
Bonsoir,

Je rencontre un soucis, je n'arrive pas a comparer deux matrices.
J'ai écrit un petit bout de code qui ne fonctionne pas le voici :

int Mat1[10][10] = {
0,1,1,1,0,1,0,0,0,0,
0,0,0,0,0,1,0,0,0,1,
0,0,0,0,0,1,0,0,0,1,
0,0,1,0,0,0,0,0,0,1,
0,0,1,0,0,0,0,0,0,1,
0,0,1,0,0,0,0,0,0,1,
0,0,1,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,1,1,0,0,0,
0,0,0,0,0,0,0,0,0,0,
};

int Mat2[10][10] = {
0,1,1,1,0,1,0,0,0,0,
0,0,0,0,0,1,0,0,0,1,
0,0,0,0,0,1,0,0,0,1,
0,0,1,0,0,0,0,0,0,1,
0,0,1,0,0,0,0,0,0,1,
0,0,1,0,0,0,0,0,0,1,
0,0,1,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,1,1,0,0,0,
0,0,0,0,0,0,0,0,0,0,
};

for(int i=0; i<10; i++)
{
for(int j=0; j<10; j++)
{
if(Mat1[j][i] == Mat2[j][i])
{ cout<<"Matrice Egale"<<endl;
}
else
{cout<<"Matrice pas Egale"<<endl;
}
}

}

Quel est mon erreur ?

Merci

Romain
A voir également:

2 réponses

Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
20
Tu veux 1 seule inscription "egal" ou "pas egal" ???

D'abord
int Mat1[10][10] est placé en memoire comme Mat[100], tout linéaire.
On n'a donc pas besoin d'imbrication de boucle.

int *p1, *p2, i;
p1 = (int*) Mat1;
p2 = (int*) Mat2;
i = 99; // tendre vers 0 sera + rapide
do {
if(p1[i] != p2[i]) break; // ELEM DIFFERE, ON QUITTE BOUCLE
} while(--i >= 0);
if(i >= 0) {
cout<<"Matrice pas Egale"<<endl
}
else {
cout<<"Matrice Egale"<<endl;
}


ciao...
BruNews, MVP VC++
Messages postés
70
Date d'inscription
mercredi 1 octobre 2008
Statut
Membre
Dernière intervention
17 avril 2013

Merci des détails, je ne savais pas que la matrice était placé en mémoire de cette façon. Et je ne savais pas non plus de dépiler aller plus vite de piler !

Merci et a bientôt.

Romain