Le message qui suit est une réponse automatique activée par un membre de l'équipe. Les réponses automatiques leur permettent d'éviter d'avoir à répéter de nombreuses fois la même chose, ce qui leur fait gagner du temps et leur permet de s'occuper des sujets qui méritent plus d'attention. Nous sommes néanmoins ouverts et si vous avez une question ou une remarque, n'hésitez pas à contacter la personne en question par Message Privé. Pour plus d'informations, nous vous invitons à lire les règles générales du forum
Merci d'utiliser la mise en forme de code
Les forums d'Openclassrooms disposent d'une fonctionnalité permettant de colorer et mettre en forme les codes source afin de les rendre plus lisibles et faciles à manipuler par les intervenants. Pour cela, il faut utiliser le bouton de l'éditeur, choisir un des langages proposés et coller votre code dans la zone prévue. Si vous utilisez l'éditeur de messages en mode Markdown, il faut utiliser les balises <pre class="brush: cpp;">Votre code ici</pre>.
Manque de Politesse
Votre message ne comporte pas ou peu de formules de politesse (« Bonjour », « Merci », « Au revoir », etc.). Les règles du site exigent que chaque nouveau message comporte un minimum de politesse. Après tout, les gens qui répondent le font gratuitement, sur leur temps libre. Ils méritent bien un minimum de considération, n'est-ce pas ?
Alors je vais pas te cacher que ton code est … en fait tu fais tout ce qu'il faut pas faire, je parle pas de l'indentation qui à disparue avec le copier collé mais bien du reste :
tu ne places pas un seul espace,
pas de saut ligne,
pas de commentaire,
plusieurs instructions sur la même ligne,
des accolades en fin de ligne…
pour pouvoir le lire, je suis obligé de faire du refactoring dessus, et ça c'est pas bon, ça devrai ressembler plus à ça (il manque encore les commentaires mais bon) :
#include<stdio.h>
#include<stdlib.h>
#define DIM 3
int cheminRec ( int tab[DIM][DIM], int x, int y )
{
if ( ( x < 0 ) ||
( y < 0 ) ||
( x > DIM ) ||
( y > DIM ) )
{
return 0;
if ( tab[x][y] != 0 )
{
return 0;
}
if ( ( x == ( DIM - 1 ) ) &&
( y == ( DIM - 1 ) ) )
{
return 1;
}
tab[x][y] = 2;
if ( cheminRec( tab, x++, y ) ||
cheminRec( tab, x, y++ ) ||
cheminRec( tab, x, y-- ) ||
cheminRec( tab, x--, y ) )
{
return 1;
}
tab[x][y] = 3;
return 0;
}
}
void monChemin ( int tab[DIM][DIM] )
{
int x=0, y=0;
if ( cheminRec( tab, x, y ) )
{
printf("bravo");
}
printf("ERREUR");
}
void affiche ( int tab[DIM][DIM] )
{
for ( int i = 0; i < DIM; i++ )
{
for ( int j = 0; j < DIM; j++ )
{
if ( tab[i][j] == 2 )
{
printf("+");
}
else
{
printf("*");
}
}
printf("\n");
}
}
void main()
{
int tab[3][3]={{0,0,1},{1,0,0},{1,1,0}};
affiche(tab);
monChemin(tab);
affiche(tab);
}
pour le problème, pas besoin d'analyser le code, le refactoring suffit, dans la fonction récurrente cheminRec, tu ne fais rien, si la première égalité est fausse alors tu fais rien (même pas le retour de valeur), si l'égalité est vrai alors tu return 0.
PS : si je te dis tout ça sur ton code, c'est pour que tu t'améliores et que tu prenne de bonnes habitude tout de suite.
- Edité par ox223252 19 septembre 2018 à 8:30:56
la connaissance est une chose qui ne nous appauvrit pas quand on la partage.
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
la connaissance est une chose qui ne nous appauvrit pas quand on la partage.
Mon GitHub