Comparer deux matrices [Résolu]

Messages postés
70
Date d'inscription
mercredi 1 octobre 2008
Statut
Membre
Dernière intervention
17 avril 2013
- - Dernière réponse : romain60112
Messages postés
70
Date d'inscription
mercredi 1 octobre 2008
Statut
Membre
Dernière intervention
17 avril 2013
- 12 mars 2010 à 07:55
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
Afficher la suite 

2 réponses

Meilleure réponse
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
13
3
Merci
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++

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 219 internautes nous ont dit merci ce mois-ci

Commenter la réponse de BruNews
Messages postés
70
Date d'inscription
mercredi 1 octobre 2008
Statut
Membre
Dernière intervention
17 avril 2013
0
Merci
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
Commenter la réponse de romain60112