Comparer deux matrices [Résolu]

romain60112 70 Messages postés mercredi 1 octobre 2008Date d'inscription 17 avril 2013 Dernière intervention - 11 mars 2010 à 22:10 - Dernière réponse : romain60112 70 Messages postés mercredi 1 octobre 2008Date d'inscription 17 avril 2013 Dernière intervention
- 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 

Votre réponse

2 réponses

Meilleure réponse
BruNews 21054 Messages postés jeudi 23 janvier 2003Date d'inscription 7 novembre 2014 Dernière intervention - 11 mars 2010 à 23:23
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++

Merci BruNews 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 84 internautes ce mois-ci

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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.