Merci, la compilation se passe sans problème, mais maintenant quand j’exécute mon programme au lieu d’avoir la valeur de la variable"compteur", j’ai un nombre(exemple: 409600) qui s’affiche
/*debut du comptage des cases sans mines*/
compteur=teste(ligne,colonne);
/*fin du comptage des cases sans mines*/
/*Sauvegarde du nombre de cases sans mines dans le tableau*/
tab_sans_mines[ligne][colonne]=compteur;
/*Remise a zeros du compteur*/
compteur=0;
/*Debut de l'affichage du tableau incluant le nombre de cases sans mines*/
for(i=0; i<TAILLE; i++)
{
for(j=0; j<TAILLE; j++)
{
printf("%d",tab_sans_mines[i][j]);
}
printf("\n");
}
jmgchouchou> son erreur venait bien de l’accolade manquante et non du fait qu’il n’y a aucun retour car, selon les CFLAGS, cela est toléré ou pas car le compilo initialise EAX à 0 et dès qu’il n’y a aucun retour, le compilo retourne implicitement EAX via un RET qui lui même retourne de manière implicite EAX.
Ceci dit, il vaut mieux faire ainsi en effet :
int teste(int ligne, int colonne)
{
int lig;
int col;
int tab_mines[TAILLE][TAILLE];
int compteur;
compteur=0;
if((lig==1 || lig==2 || lig ==3) && (col==1 || col==2 || col==3))
{
if(tab_mines[lig-1][col]==0) compteur++;
if(tab_mines[lig-1][col+1]==0)compteur++;
if(tab_mines[lig-1][col-1]==0)compteur++;
if(tab_mines[lig+1][col]==0)compteur++;
if(tab_mines[lig+1][col+1]==0)compteur++;
if(tab_mines[lig+1][col-1]==0)compteur++;
if(tab_mines[lig][col+1]==0)compteur++;
if(tab_mines[lig][col-1]==0)compteur++;
} // <--
return compteur;
}
pour l’affichage du tableau tab_sans_mines je rajouterais un espace après l’affichage de chaque case
/*Debut de l'affichage du tableau incluant le nombre de cases sans mines*/
for(i=0; i<TAILLE; i++)
{
for(j=0; j<TAILLE; j++)
{
printf("%d ",tab_sans_mines[i][j]);
}
printf("\n");
}
Oui moi aussi si je fais comme ça ça retourne 0, mais ça ne doit pas retourner 0 justement(du moins pas dans le contexte dans lequel je l’ai testé)
Je vous remercie d’avoir regarder mon problème, mais ce n’est pas grave, ça marche sans fonction, c’est juste que l’on vient de les voir donc je voulais en mettre dans mon projet, mais je ne pense pas que l’on m’en tiendra rigueur…
C’est pas que c’est le mal mais disons qu’il date, qu’il n’est plus développé et qu’une fois qu’on a testé son fils spirituel à savoir code::blocks, on se dit que revenir sur DevC++ c’est comme passer du C++ au Java :MDR
Pas forcément, avec code::blocks tu peux choisir différents compilateurs dont gcc mais si tu en choisis un autre, il y a une forte probabilité que les erreurs surviennent.
De toute façon, il est toujours de bon ton de ne pas dépendre du compilateur mais de son code qu’il faudra donc corriger soit même.
Bonjour a tous! Je suis un peut un débutant et moi aussi j’ai un petit problème. En fait lorque je compile mon programme dev c++ me marque " `choix’ undeclared (first use in this function) " alor que j’ai deja mis choix plus haut. Je ne comprend pas. voila mon code.
#include <stdio.h> #include <stdlib.h>
int main(int argc, char *argv[])
{
do
{
long compteur = 0;
long nombreEntre = 0, nombreMystere = 0;
const long MAX =100, MIN = 1;