Problem declaration variable globale
Fermé
didy_gwatinik
Messages postés
352
Date d'inscription
samedi 17 novembre 2007
Statut
Membre
Dernière intervention
30 mars 2010
-
12 janv. 2008 à 13:44
didy_gwatinik Messages postés 352 Date d'inscription samedi 17 novembre 2007 Statut Membre Dernière intervention 30 mars 2010 - 12 janv. 2008 à 17:25
didy_gwatinik Messages postés 352 Date d'inscription samedi 17 novembre 2007 Statut Membre Dernière intervention 30 mars 2010 - 12 janv. 2008 à 17:25
A voir également:
- Problem declaration variable globale
- Déclaration de revenus - Guide
- Variable objet ou variable de bloc with non définie - Forum VB / VBA
- Impossible de créer le fichier de travail. vérifiez la variable d'environnement temp ✓ - Forum Windows 10
- Variable d'environnement TEMP ✓ - Forum Windows 7
8 réponses
didy_gwatinik
Messages postés
352
Date d'inscription
samedi 17 novembre 2007
Statut
Membre
Dernière intervention
30 mars 2010
80
12 janv. 2008 à 14:43
12 janv. 2008 à 14:43
Voila :
#include<stdio.h>
#include<conio.c>
#include<stdlib.h>
#include<time.h>
#define nombreLigne 9
#define nombreColonne 9
int nbMine=10, i, j,tab[nombreLigne][nombreColonne];
void affichage_tableau ( )
{
printf(" ");//4 espace
for(j=0;j<nombreColonne;j++)//revoir l'initialisation avc la convention
{
printf("%d ",j);
}
printf("\n -");
for(j=0;j<nombreColonne;j++)
{
printf("--");
}
for(i=0;i<nombreLigne;i++)
{
puts(" ");
printf("%d | ",i);
for(j=0;j<nombreColonne;j++)
{
printf("x ",tab[i][j]); // affichage du tableau
}
}
puts("\n");
}
main(void)
{
int lignemine,colonnemine,recommencer,tabcase[nombreLigne][nombreColonne], i, j,mine=0,mineAlentour=0,reponse,confirmCase,compteurMine=10,caseDecouverte=0,nbCase=81;
do{
system("cls");
textcolor(4);
printf("\n\n\n\n\t\t\t\t===>>>LE DEMINEUR<<===\n\n\n\n");
textcolor(2);
choisir( );
nbCase=nombreColonne*nombreLigne;
system("pause");
system("cls");
affichage_tableau( );
/*Initilisation du tableau avec les mines et les mines alentours*/
srand(time(NULL));
for(i=0;i<nombreLigne;i++)
{
for(j=0;j<nombreColonne;j++)
{
tab[i][j]=rand( )%2;
if ((tab[i][j]>0.5) && (mine<nbMine))
{
tab[i][j]=9;
mine++;
}
else{tab[i][j]=0;}
}
}
for(i=0;i<nombreLigne;i++)
{
for(j=0;j<nombreColonne;j++)
{
if(tab[i][j]!=9)
{
if (tab[i-1][j+1]==9)
mineAlentour++;//Case diagonale haut gauche
if (tab[i][j+1]==9)
mineAlentour++;//case du haut
if (tab[i+1][j+1]==9)
mineAlentour++;//Case diagonale haut droite
if (tab[i-1][j]==9)
mineAlentour++;//CAse de gauche
if (tab[i+1][j]==9)
mineAlentour++;//Case de droite
if (tab[i-1][j-1]==9)
mineAlentour++;//case diagonale bas gauche
if (tab[i][j-1]==9)
mineAlentour++;//case du bas
if (tab[i+1][j-1]==9)
mineAlentour++;//case diagonale droite bas
tab[i][j]=mineAlentour;
}
mineAlentour=0;
}
}
printf("\n ");
for(j=0;j<nombreColonne;j++)
{
printf("%d ",j);
}
printf("\n -");
for(j=0;j<nombreColonne;j++)
{
printf("--");
}
for(i=0;i<nombreLigne;i++)
{
puts("");
printf("%d | ",i);
for(j=0;j<nombreColonne;j++)
{
printf("%d ",tab[i][j]); // affichage du tableau
}
}
#include<stdio.h>
#include<conio.c>
#include<stdlib.h>
#include<time.h>
#define nombreLigne 9
#define nombreColonne 9
int nbMine=10, i, j,tab[nombreLigne][nombreColonne];
void affichage_tableau ( )
{
printf(" ");//4 espace
for(j=0;j<nombreColonne;j++)//revoir l'initialisation avc la convention
{
printf("%d ",j);
}
printf("\n -");
for(j=0;j<nombreColonne;j++)
{
printf("--");
}
for(i=0;i<nombreLigne;i++)
{
puts(" ");
printf("%d | ",i);
for(j=0;j<nombreColonne;j++)
{
printf("x ",tab[i][j]); // affichage du tableau
}
}
puts("\n");
}
main(void)
{
int lignemine,colonnemine,recommencer,tabcase[nombreLigne][nombreColonne], i, j,mine=0,mineAlentour=0,reponse,confirmCase,compteurMine=10,caseDecouverte=0,nbCase=81;
do{
system("cls");
textcolor(4);
printf("\n\n\n\n\t\t\t\t===>>>LE DEMINEUR<<===\n\n\n\n");
textcolor(2);
choisir( );
nbCase=nombreColonne*nombreLigne;
system("pause");
system("cls");
affichage_tableau( );
/*Initilisation du tableau avec les mines et les mines alentours*/
srand(time(NULL));
for(i=0;i<nombreLigne;i++)
{
for(j=0;j<nombreColonne;j++)
{
tab[i][j]=rand( )%2;
if ((tab[i][j]>0.5) && (mine<nbMine))
{
tab[i][j]=9;
mine++;
}
else{tab[i][j]=0;}
}
}
for(i=0;i<nombreLigne;i++)
{
for(j=0;j<nombreColonne;j++)
{
if(tab[i][j]!=9)
{
if (tab[i-1][j+1]==9)
mineAlentour++;//Case diagonale haut gauche
if (tab[i][j+1]==9)
mineAlentour++;//case du haut
if (tab[i+1][j+1]==9)
mineAlentour++;//Case diagonale haut droite
if (tab[i-1][j]==9)
mineAlentour++;//CAse de gauche
if (tab[i+1][j]==9)
mineAlentour++;//Case de droite
if (tab[i-1][j-1]==9)
mineAlentour++;//case diagonale bas gauche
if (tab[i][j-1]==9)
mineAlentour++;//case du bas
if (tab[i+1][j-1]==9)
mineAlentour++;//case diagonale droite bas
tab[i][j]=mineAlentour;
}
mineAlentour=0;
}
}
printf("\n ");
for(j=0;j<nombreColonne;j++)
{
printf("%d ",j);
}
printf("\n -");
for(j=0;j<nombreColonne;j++)
{
printf("--");
}
for(i=0;i<nombreLigne;i++)
{
puts("");
printf("%d | ",i);
for(j=0;j<nombreColonne;j++)
{
printf("%d ",tab[i][j]); // affichage du tableau
}
}
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
12 janv. 2008 à 13:51
12 janv. 2008 à 13:51
Normal.
Soit tu effectues un malloc.
Soit tout simplement, tu écris :
#define nombreLigne 9 à la place de int nombreLigne=9;
#define nombreColonne 9 à la place de int nombreColonne=9;
Cordialement
Soit tu effectues un malloc.
Soit tout simplement, tu écris :
#define nombreLigne 9 à la place de int nombreLigne=9;
#define nombreColonne 9 à la place de int nombreColonne=9;
Cordialement
didy_gwatinik
Messages postés
352
Date d'inscription
samedi 17 novembre 2007
Statut
Membre
Dernière intervention
30 mars 2010
80
12 janv. 2008 à 13:55
12 janv. 2008 à 13:55
J'ai essayé la deuxième solution mais j'obtiens l'erreur suivante : non l-value in unary '&', je ne sais pas ce qu'est un maloc
Je ne connais pas en C++ ou en C mais je détecte quelques erreurs :
1-Tu as déclaré le tableau avec le INT , c'est un tableau pas un ENTIER
2-Il faut déclarer le tableau tout seul en précisant le type (tableau d'entiers , de réels ...)
3-Tu parles de fonctions,je ne vois aucune fonction dans ton programme
Pour te documenter ==> clique ici
1-Tu as déclaré le tableau avec le INT , c'est un tableau pas un ENTIER
2-Il faut déclarer le tableau tout seul en précisant le type (tableau d'entiers , de réels ...)
3-Tu parles de fonctions,je ne vois aucune fonction dans ton programme
Pour te documenter ==> clique ici
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
12 janv. 2008 à 14:38
12 janv. 2008 à 14:38
Salut
Post moi le début de ton fichier, avec la solution par #define, que je vois si tu as bien mis comme j'ai dit.
Cordialement
Post moi le début de ton fichier, avec la solution par #define, que je vois si tu as bien mis comme j'ai dit.
Cordialement
didy_gwatinik
Messages postés
352
Date d'inscription
samedi 17 novembre 2007
Statut
Membre
Dernière intervention
30 mars 2010
80
12 janv. 2008 à 15:49
12 janv. 2008 à 15:49
ya un probleme dans ma declaration?
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
12 janv. 2008 à 16:02
12 janv. 2008 à 16:02
Salut,
Utilise les balises "
Sinon, il y avait d'autres erreurs.
#include <conio.c> au lieu de conio.h
Des accolades manquantes à la fin de la fonction main, un while manquant.
Je te poste donc une correction qui devrait marcher. A toi de mettre la bonne condition dans le while que j'ai rajouté.
Utilise les balises "
" et "" pour insérer ton code, on y verra beaucoup plus clair.
Sinon, il y avait d'autres erreurs.
#include <conio.c> au lieu de conio.h
Des accolades manquantes à la fin de la fonction main, un while manquant.
Je te poste donc une correction qui devrait marcher. A toi de mettre la bonne condition dans le while que j'ai rajouté.
#include<stdio.h> #include<conio.h> #include<stdlib.h> #include<time.h> #define nombreLigne 9 #define nombreColonne 9 int nbMine=10, i, j,tab[nombreLigne][nombreColonne]; void affichage_tableau ( ) { printf(" ");//4 espace for(j=0;j<nombreColonne;j++)//revoir l'initialisation avc la convention { printf("%d ",j); } printf("\n -"); for(j=0;j<nombreColonne;j++) { printf("--"); } for(i=0;i<nombreLigne;i++) { puts(" "); printf("%d | ",i); for(j=0;j<nombreColonne;j++) { printf("x ",tab[i][j]); // affichage du tableau } } puts("\n"); } main(void) { int lignemine,colonnemine,recommencer,tabcase[nombreLigne][nombreColonne], i, j,mine=0,mineAlentour=0,reponse,confirmCase,compteurMine=10,caseDecouverte=0,nbCase=81; do{ system("cls"); textcolor(4); printf("\n\n\n\n\t\t\t\t===>>>LE DEMINEUR<<===\n\n\n\n"); textcolor(2); choisir( ); nbCase=nombreColonne*nombreLigne; system("pause"); system("cls"); affichage_tableau( ); /*Initilisation du tableau avec les mines et les mines alentours*/ srand(time(NULL)); for(i=0;i<nombreLigne;i++) { for(j=0;j<nombreColonne;j++) { tab[i][j]=rand( )%2; if ((tab[i][j]>0.5) && (mine<nbMine)) { tab[i][j]=9; mine++; } else{tab[i][j]=0;} } } for(i=0;i<nombreLigne;i++) { for(j=0;j<nombreColonne;j++) { if(tab[i][j]!=9) { if (tab[i-1][j+1]==9) mineAlentour++;//Case diagonale haut gauche if (tab[i][j+1]==9) mineAlentour++;//case du haut if (tab[i+1][j+1]==9) mineAlentour++;//Case diagonale haut droite if (tab[i-1][j]==9) mineAlentour++;//CAse de gauche if (tab[i+1][j]==9) mineAlentour++;//Case de droite if (tab[i-1][j-1]==9) mineAlentour++;//case diagonale bas gauche if (tab[i][j-1]==9) mineAlentour++;//case du bas if (tab[i+1][j-1]==9) mineAlentour++;//case diagonale droite bas tab[i][j]=mineAlentour; } mineAlentour=0; } } printf("\n "); for(j=0;j<nombreColonne;j++) { printf("%d ",j); } printf("\n -"); for(j=0;j<nombreColonne;j++) { printf("--"); } for(i=0;i<nombreLigne;i++) { puts(""); printf("%d | ",i); for(j=0;j<nombreColonne;j++) { printf("%d ",tab[i][j]); // affichage du tableau } } }while(1); }
didy_gwatinik
Messages postés
352
Date d'inscription
samedi 17 novembre 2007
Statut
Membre
Dernière intervention
30 mars 2010
80
12 janv. 2008 à 17:25
12 janv. 2008 à 17:25
J'ai toujours un probleme avec la même expression, je ne poste pas mon code en entier car il est long. Quand on met #define nombreLigne 9 et #define nombreColonne 9 dans le code on peut les modifier? Je pense que l'erreur vient de là.
#include<stdio.h> #include<conio.c> #include<stdlib.h> #include<time.h> #define nombreLigne 9 #define nombreColonne 9 int nbMine=10, i, j,tab[nombreLigne][nombreColonne]; void personalise( ) { int Ligne=-1, Colonne=-1; printf("=>Personalisation du jeu<="); while(Ligne<1 || Ligne>10) {puts("\n\nDe quelle longueur voulez vous que votre champ de mine soit? (9 par defaut)"); scanf("%d", &nombreLigne);//non-lvalue in unary '&' Ligne=nombreLigne;} while(Colonne<1 || Colonne>10) {puts("\n\nDe quelle largeur voulez vous que votre champ de mine soit? (9 par defaut)"); scanf("%d", &nombreColonne);//non-lvalue in unary '&' Colonne=nombreColonne;} do{ puts("\n\nCombien de mines voulez vous avoir a desamorcer? (10 par defaut)"); scanf("%d", &nbMine); }while(nbMine>nombreLigne*nombreColonne); } void choisir ( ) { int choix; textcolor(2); printf("Que voulez vous faire?\n\t-1 Commencer a jouer\n\t-2 Personnaliser le jeu\n\t-3 Voir les regles du jeu\n"); scanf("%d", &choix); system("cls"); switch(choix) { case 1 : { printf("Veuillez entrer votre niveau de jeu : \n\t-1 Debutant\n\t-2 Intermediaire\n\t-3 Expert\n"); scanf("%d",&choix); switch(choix) { case 1 : { nombreLigne=9; nombreColonne=9; nbMine=10; } break; case 2 : { nombreLigne=10; nombreColonne=10; nbMine=40; } break; case 3 : { nombreLigne=10; nombreColonne=10; nbMine=60; } break; default : ; } } break; case 2 : personalise (); break; case 3 : printf("=>Les Regles du jeu<=\n\nLe jeu se presente sous la forme d'un tableau de cases a deux dimensions. Certaines cases contiennent des mines. Au depart toutes les cases sont masquees (et on ne voit donc pas les mines). L'objectif est de localiser les mines (le nombre de mines restant a localiser etant donne au joueur). Le joueur peut au choix decouvrir le contenu d'une case, ou la marquer pour signaler la presence d'une mine (c'est son hypothese et le decompte des mines se fixe la dessus). Les cases decouvertes affichent le nombre de mines dans les 8 cases voisines, sauf si la case contient elle meme une mine (auquel cas le joueur meurt et la partie est termine). Si le joueur n'est pas mort, la partie se termine lorsque le joueur a decouvert toutes les cases (sauf celles avec les mines). Son score est le temps mis pour terminer.\n"); break; default : ; } } void affichage_tableau ( ) { printf(" ");//4 espace for(j=0;j<nombreColonne;j++)//revoir l'initialisation avc la convention { printf("%d ",j); } printf("\n -"); for(j=0;j<nombreColonne;j++) { printf("--"); } for(i=0;i<nombreLigne;i++) { puts(" "); printf("%d | ",i); for(j=0;j<nombreColonne;j++) { printf("x ",tab[i][j]); // affichage du tableau } } puts("\n"); } main(void) { int lignemine,colonnemine,recommencer,tabcase[nombreLigne][nombreColonne], i, j,mine=0,mineAlentour=0,reponse,confirmCase,compteurMine=10,caseDecouverte=0,nbCase=81; do{ system("cls"); textcolor(4); printf("\n\n\n\n\t\t\t\t===>>>LE DEMINEUR<<===\n\n\n\n"); textcolor(2); choisir( ); nbCase=nombreColonne*nombreLigne; system("pause"); system("cls"); affichage_tableau( ); /*Initilisation du tableau avec les mines et les mines alentours*/ srand(time(NULL)); for(i=0;i<nombreLigne;i++) { for(j=0;j<nombreColonne;j++) { tab[i][j]=rand( )%2; if ((tab[i][j]>0.5) && (mine<nbMine)) { tab[i][j]=9; mine++; } else{tab[i][j]=0;} } } for(i=0;i<nombreLigne;i++) { for(j=0;j<nombreColonne;j++) { if(tab[i][j]!=9) { if (tab[i-1][j+1]==9) mineAlentour++;//Case diagonale haut gauche if (tab[i][j+1]==9) mineAlentour++;//case du haut if (tab[i+1][j+1]==9) mineAlentour++;//Case diagonale haut droite if (tab[i-1][j]==9) mineAlentour++;//CAse de gauche if (tab[i+1][j]==9) mineAlentour++;//Case de droite if (tab[i-1][j-1]==9) mineAlentour++;//case diagonale bas gauche if (tab[i][j-1]==9) mineAlentour++;//case du bas if (tab[i+1][j-1]==9) mineAlentour++;//case diagonale droite bas tab[i][j]=mineAlentour; } mineAlentour=0; } } printf("\n "); ...