Boucle sans arret [Résolu]

Messages postés
105
Date d'inscription
mercredi 25 novembre 2009
Dernière intervention
27 janvier 2014
- 1 oct. 2011 à 20:36 - Dernière réponse :
Messages postés
14235
Date d'inscription
lundi 11 juillet 2005
Dernière intervention
20 novembre 2018
- 5 oct. 2011 à 15:10
bonjour,
j'ai un petit problème dans un code que j’écris en c, voila la partie où est situé le problème.

for( i=0;i<Height+2;i++){
for( j=0;j<Width+2;j++){

if ( (i=0) || (j=0) || (i=Height+1) ||(j=Width+1) ){
rg[i][j]=0;
}
else {

rge[i][j]=i+j;
}

}

}


ma boucle ne s’arrête pas, j'ai pu confirmer ça en essayant de débugger, à l’exécution j'ai une boucle infini.

Pouvez vous m'indiquer ou se situe l'erreur

Merci
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
Messages postés
361
Date d'inscription
mardi 31 décembre 2002
Dernière intervention
19 mars 2015
1 oct. 2011 à 20:52
3
Merci
tu fais des affectations au lieu de faire des tests

remplace
if ( (i=0) || (j=0) || (i=Height+1) ||(j=Width+1) ){

par
if ( (i==0) || (j==0) || (i==(Height+1)) ||(j==(Width+1)) ){

Merci mogwai93 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 90 internautes ce mois-ci

Commenter la réponse de mogwai93
Messages postés
105
Date d'inscription
mercredi 25 novembre 2009
Dernière intervention
27 janvier 2014
1 oct. 2011 à 20:54
0
Merci
Merci, c'est vrai ,quelle erreur bête,j'ai pas fait attention

a++.
Commenter la réponse de nassim1987
Messages postés
14235
Date d'inscription
lundi 11 juillet 2005
Dernière intervention
20 novembre 2018
3 oct. 2011 à 10:18
0
Merci
Hello,
Même si ta demande a trouvé une réponse, je te fais part de ma petite analyse.
Apparemment, tu fais du traitement d'images. Du coup, le code que tu nous montres parcourt une image. Or, il y a truc qui me chagrine:
for( i= 0;i< Height+2 ;i++)

Pourquoi cherches-tu à "aller 2 pixels après le bord de ton image"? Généralement, les boucles sont de la formes suivantes:
for(i =0; i<Height; i++)

voire même, si tu ne gères pas les bords:
for(i=1; i<Height-1; i++)


Attention, donc, aux bornes de tes boucles, qui peuvent te créer des problèmes par la suite.

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Commenter la réponse de BunoCS
Messages postés
105
Date d'inscription
mercredi 25 novembre 2009
Dernière intervention
27 janvier 2014
4 oct. 2011 à 19:04
0
Merci
Oui, c'est exact mais la j'ai agrandi ma matrice avec des éléments null pour pouvoir appliquer un filtre,c'est pour ne pas avoir de pb avec le bord de l'image
Commenter la réponse de nassim1987
Messages postés
14235
Date d'inscription
lundi 11 juillet 2005
Dernière intervention
20 novembre 2018
5 oct. 2011 à 15:10
0
Merci
Très mauvaise manière de faire...
Pour gérer les bords, tu as 2 "écoles":
- la 1ère: ne pas les gérer. C'est-à-dire que tu parcours ton images en "laissant une bande de 1 pixel" autour de ton image
- la 2: quand tu débordes de ton image, au lieu de taper dans le vide, tu vas chercher le pixel "de l'autre côté", un peu comme si tu pliais ton image pour coller les bords


@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Commenter la réponse de BunoCS

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.