Boucle while en c

Résolu
Sofi -  
predact Messages postés 187 Statut Membre -
Bonjour,
j'ai fais le boucle suivant qui me permet de retourner un entier
int HauteurMax(int c1,int c2,Grille G)
{

int i,j;
int HMax=0;

for(i=0;i<HAUTEUR;i++)
for(j=c1;j<c2;j++)
while(G[i][j]!=' ')
{ HMax=HAUTEUR-(i+1);

}
break;
return HMax;
}

mais normalement dés que j'ai G[i][j]!=' ' il me retourne hmax est s'arrete mais contrairement il se boucle mon petit programme il n'arrive pas de s'arreter
Est ce que vous connaissez pour quoi s'il vous palit repondez moi ?
J'ai posé plain de questions mai j'ai pas récue aucune réponses ?

4 réponses

predact Messages postés 187 Statut Membre 16
 
Bonjour,
Il doit y avoir une erreur au niveau de tes accolades déjà, essai de bien les mettre partout pour ne pas qu'il y ait d'ambiguité (je ne sais pas trop ou tu veux placer ton break):

int HauteurMax(int c1,int c2,Grille G)
{

int i,j;
int HMax=0;

for(i=0;i<HAUTEUR;i++)
{
for(j=c1;j<c2;j++)
{
while(G[i][j]!=' ')
{ HMax=HAUTEUR-(i+1);

}
}
break;
}
return HMax;
}

Et je ne vois pas trop l'utilité de ton while, parce qu'enfaite ça risque de bouler infinie vue que tu ne parcours pas ton tableau et donc si la case de coordonné (i,j) et différente de ' ' ça boucle mais ça restera comme ça vue que tu restes sur cette case. Peux-tu expliquer ce que tu voudrais faire ?
0
Sofi
 
en faite je veux chercher le 1ligne qui contient u caractére diférent de l'espace qui est entre les 2 colonne c1 et c2 dés que je trouve ce carctére j'envoie le HMax c'est pour ca j'ai fais le while et break; mais ca ne focntionne pas
0
Sofi
 
vous arrivez à me comprendre ?!!
0
predact Messages postés 187 Statut Membre 16
 
Ok, si j'ai bien compris essaie peut-ètre :

int HauteurMax(int c1,int c2,Grille G)
{

int i,j;
int HMax=0;

for(i=0;i<HAUTEUR;i++)
{
for(j=c1;j<c2;j++)
{
if(G[i][j]!=' ')
{
HMax=HAUTEUR-(i+1);
return HMax;
}
}
}
}
0
Sofi
 
bon cette fonction parfoi elle donne une résultat juste et parfoie elle ne donne pas ce que je veux :((
0
Sofi
 
je vous réecrire la question compléte,
"Ecriver une procédure hmax qui étant donné un intervalle de colonne, retourne lahauteure maximal ou se trouve la case occupé et retourne -1 si aucune case n'est occupé"
comment vous pouvez le résoudre ?
0
predact Messages postés 187 Statut Membre 16
 
Une fois de plus si j'ai bien compris, il manque un return -1 si aucune case n'est trouvé avant la fin du programme et je n'arrive à comprendre pourquoi vous faites: HMax=HAUTEUR-(i+1); Si seul la hauteur est demandé il vous suffirait de retourner i je pense.

Essayez peut-être ceci:

int HauteurMax(int c1,int c2,Grille G)
{

int i,j;
int HMax=0;

for(i=0;i<HAUTEUR;i++)
{
for(j=c1;j<c2;j++)
{
if(G[i][j]!=' ')
{
return i;
}
}
}
return -1;
}
0
Sofi
 
merci pour votre aide :)
0
predact Messages postés 187 Statut Membre 16
 
Pas de soucis, je suis heureux d'avoir pu vous aider.
0