CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[Help]Programmation C

[LeFilsdeDieu]
[LeFilsdeDieu]
Niveau 8
18 avril 2012 à 15:03:17

Bonjour tout le monde :)

Je suis bloqué lors de la compilation de mon code source, voila le problème qu'il m'affiche A LA LIGNE 158 :

:d) error : expected 'while' before '}' token

Le code source :d)

  1. include <stdio.h>
  2. include <stdlib.h>
  3. include <time.h>
  4. include <math.h>

int main(int argc, char *argv[])
{
long NombreJoueur= 0, NombreEntre=0,nombreMax = 0, NombreMystere= 0, coups= 1, continuer= 1, niveau= 0, lignes= 0;
const long MIN = 1;

while (continuer = 1)
{
printf("Bienvenue dans mon jeu !\n");
printf("Le but consiste a deviner le nombre exacte en un nombre minimum de coups !\n\n\n");
printf("===Choisissez votre mode de jeu ===\n\n");
printf("\n");
printf("1.Solo\n\n");
printf("2.Deux joueurs\n\n");
printf("Que choisissez-vous?");

scanf("%ld", &NombreJoueur);

switch (NombreJoueur)

{
case 1 :
(NombreJoueur= 1);
break;
case 2 :
(NombreJoueur= 2);
break;
default :
printf("Cette valeur n'est pas valide\n");
}

printf("\n\n");

printf("===Choississez votre niveau===\n");
printf("\n");
printf("1. Niveau 1 a 10\n\n");
printf("2. Niveau 1 a 100\n\n");
printf("3. Niveau 1 a 1000\n\n");
printf("Que choisissez-vous ?");
scanf("%ld", &niveau);

switch(niveau)
{
case 1 :
(nombreMax= 10);
break;
case 2 :
(nombreMax= 100);
break;
case 3 :
(nombreMax= 1000);
break;
default :
printf("Cette valeur n'est pas valide\n");
}

//Mode Solo

if (NombreJoueur!= 2)
{
srand (time(NULL)); // Génération du nombre aléatoire
NombreMystere = (rand() % (nombreMax - MIN + 1)) + MIN;

printf("\n\n\n\n\n\n\n\n\n\n\n\n\n");

printf("Trouve le nombre mystere !!\n\n");
printf("\n");
printf("Quel est-ce nombre ?");
do
{
scanf("%ld", &NombreEntre );

if (NombreMystere > NombreEntre)
{
printf("C'est plus !\n");

coups++;
}
else if (NombreMystere < NombreEntre)

{printf("C'est moins !\n");

coups++;
}
else
{
printf("Bravo tu as trouve le nombre en %ld coups !", coups);
}

}while (NombreMystere!=NombreEntre);
}

// Mode 2 joueurs

if (NombreJoueur!=1)
{

srand (time(NULL)); // Génération du nombre aléatoire
NombreMystere = (rand() % (nombreMax - MIN + 1)) + MIN;

printf("\n\n");

printf("===Choisissez le nombre mystere pour le second joueur===\n\n");
printf("Quel nombre avez-vous choisi ?");
scanf("%ld", &NombreMystere);
while (lignes < 170)
{
printf("Interdit de remonter la page!!!\n");
lignes++;
}
printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
printf("*****Le joueur numero 2 a entre le nombre mystere*****");
printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
printf("===A votre tour, joueur numero 1, trouver ce nombre mystere !===");
printf("\n");
printf("Quel est-ce nombre ?");
do
{
scanf("%ld", &NombreEntre);

if (NombreMystere > NombreEntre)
{
printf("\n\n");
printf("c'est plus !");
coups++;
}

else if (NombreMystere < NombreEntre)
{
printf("\n\n");
printf("c'est moins !");
coups++;
}
else
{
printf("\n\n\n\n\n");
printf("===Bravo vous avez trouve le nombre en %ld coups ===\n", coups);
printf("\n\n");
}
if (NombreMystere==NombreEntre)
{
printf("Voulez-vous faire une autre partie?\n");
printf("1. Menu\n");
printf("0. Quitter\n");
printf("Que choisissez-vous?");
scanf("%ld", &continuer);
}
}
}
}
}

Savez-vous comment faire, pour le rendre opérationnel?

Merci d'avance :)

[LeFilsdeDieu]
[LeFilsdeDieu]
Niveau 8
18 avril 2012 à 15:05:03

La ligne 158 est la 3ème accolade '}' en partant du bas

Pseudo supprimé
Pseudo supprimé 18 avril 2012 à 15:09:09

Je te conseille d'aller sur le forum du Site du Zero, ils sont plus calés niveau prog là bas ! :)

[LeFilsdeDieu]
[LeFilsdeDieu]
Niveau 8
18 avril 2012 à 15:14:41

D'accord merci!

Pseudo supprimé
Pseudo supprimé 18 avril 2012 à 15:31:35
  1. include <stdio.h>
  2. include <stdlib.h>
  3. include <time.h>
  4. include <math.h>

int main(int argc, char *argv[])

{
long NombreJoueur= 0, NombreEntre=0,nombreMax = 0, NombreMystere= 0, coups= 1, continuer= 1, niveau= 0, lignes= 0;
const long MIN = 1;

while (continuer = 1)
{
printf("Bienvenue dans mon jeu !\n");
printf("Le but consiste a deviner le nombre exacte en un nombre minimum de coups !\n\n\n");
printf("===Choisissez votre mode de jeu ===\n\n");
printf("\n");
printf("1.Solo\n\n");
printf("2.Deux joueurs\n\n");
printf("Que choisissez-vous?");

scanf("%ld", &NombreJoueur);

switch (NombreJoueur)

{
case 1 :
(NombreJoueur= 1);
break;
case 2 :
(NombreJoueur= 2);
break;
default :
printf("Cette valeur n'est pas valide\n");
}

printf("\n\n");

printf("===Choississez votre niveau===\n");
printf("\n");
printf("1. Niveau 1 a 10\n\n");
printf("2. Niveau 1 a 100\n\n");
printf("3. Niveau 1 a 1000\n\n");
printf("Que choisissez-vous ?");
scanf("%ld", &niveau);

switch(niveau)
{
case 1 :
(nombreMax= 10);
break;
case 2 :
(nombreMax= 100);
break;
case 3 :
(nombreMax= 1000);
break;
default :
printf("Cette valeur n'est pas valide\n");
}

//Mode Solo

if (NombreJoueur!= 2)
{
srand (time(NULL)); // Génération du nombre aléatoire
NombreMystere = (rand() % (nombreMax - MIN + 1)) + MIN;

printf("\n\n\n\n\n\n\n\n\n\n\n\n\n");

printf("Trouve le nombre mystere !!\n\n");
printf("\n");
printf("Quel est-ce nombre ?");
do
{
scanf("%ld", &NombreEntre );

if (NombreMystere > NombreEntre)
{
printf("C'est plus !\n");
coups++;
}
else if (NombreMystere < NombreEntre)
{
printf("C'est moins !\n");
coups++;

}
else
{
printf("Bravo tu as trouve le nombre en %ld coups !", coups);
}

}
// ton érreur était ici après le while tu met une accolade fermé .. je l'ai modifié
while (NombreMystere!=NombreEntre);
//}
{

// Mode 2 joueurs

if (NombreJoueur!=1)
{

srand (time(NULL)); // Génération du nombre aléatoire
NombreMystere = (rand() % (nombreMax - MIN + 1)) + MIN;

printf("\n\n");

printf("===Choisissez le nombre mystere pour le second joueur===\n\n");
printf("Quel nombre avez-vous choisi ?");
scanf("%ld", &NombreMystere);
while (lignes < 170)
{
printf("Interdit de remonter la page!!!\n");
lignes++;
}
printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
printf("*****Le joueur numero 2 a entre le nombre mystere*****");
printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
printf("===A votre tour, joueur numero 1, trouver ce nombre mystere !===");
printf("\n");
printf("Quel est-ce nombre ?");
do
{
scanf("%ld", &NombreEntre);

if (NombreMystere > NombreEntre)
{
printf("\n\n");
printf("c'est plus !");
coups++;
}

else if (NombreMystere < NombreEntre)
{
printf("\n\n");
printf("c'est moins !");
coups++;
}
else
{
printf("\n\n\n\n\n");
printf("===Bravo vous avez trouve le nombre en %ld coups ===\n", coups);
printf("\n\n");
}
if (NombreMystere==NombreEntre)
{
printf("Voulez-vous faire une autre partie?\n");
printf("1. Menu\n");
printf("0. Quitter\n");
printf("Que choisissez-vous?");
scanf("%ld", &continuer);
}
}
}
}
}

Pseudo supprimé
Pseudo supprimé 18 avril 2012 à 15:32:24

j'ai modifier ton code est mit des commentaires vu tu t'étais gouré , erreur de débutant en plus ...

Pseudo supprimé
Pseudo supprimé 18 avril 2012 à 15:41:27

il est enfaite mal placé ton while (NombreMystere!=NombreEntre);

Pseudo supprimé
Pseudo supprimé 18 avril 2012 à 15:46:11
  1. include <stdio.h>
  2. include <stdlib.h>
  3. include <time.h>
  4. include <math.h>

int main(int argc, char *argv[])

{
long NombreJoueur= 0, NombreEntre=0,nombreMax = 0, NombreMystere= 0, coups= 1, continuer= 1, niveau= 0, lignes= 0;
const long MIN = 1;

while (continuer = 1)
{
printf("Bienvenue dans mon jeu !\n");
printf("Le but consiste a deviner le nombre exacte en un nombre minimum de coups !\n\n\n");
printf("===Choisissez votre mode de jeu ===\n\n");
printf("\n");
printf("1.Solo\n\n");
printf("2.Deux joueurs\n\n");
printf("Que choisissez-vous?");

scanf("%ld", &NombreJoueur);

switch (NombreJoueur)

{
case 1 :
(NombreJoueur= 1);
break;
case 2 :
(NombreJoueur= 2);
break;
default :
printf("Cette valeur n'est pas valide\n");
}

printf("\n\n");

printf("===Choississez votre niveau===\n");
printf("\n");
printf("1. Niveau 1 a 10\n\n");
printf("2. Niveau 1 a 100\n\n");
printf("3. Niveau 1 a 1000\n\n");
printf("Que choisissez-vous ?");
scanf("%ld", &niveau);

switch(niveau)
{
case 1 :
(nombreMax= 10);
break;
case 2 :
(nombreMax= 100);
break;
case 3 :
(nombreMax= 1000);
break;
default :
printf("Cette valeur n'est pas valide\n");
}

//Mode Solo

if (NombreJoueur!= 2)
{
srand (time(NULL)); // Génération du nombre aléatoire
NombreMystere = (rand() % (nombreMax - MIN + 1)) + MIN;

printf("\n\n\n\n\n\n\n\n\n\n\n\n\n");

printf("Trouve le nombre mystere !!\n\n");
printf("\n");
printf("Quel est-ce nombre ?");
do
{
scanf("%ld", &NombreEntre );

while (NombreMystere!=NombreEntre);
{

if (NombreMystere > NombreEntre)
{
printf("C'est plus !\n");
coups++;
}
else if (NombreMystere < NombreEntre)
{
printf("C'est moins !\n");
coups++;
}
else
{
printf("Bravo tu as trouve le nombre en %ld coups !", coups);
}

}

// Mode 2 joueurs

if (NombreJoueur!=1)
{

srand (time(NULL)); // Génération du nombre aléatoire
NombreMystere = (rand() % (nombreMax - MIN + 1)) + MIN;

printf("\n\n");

printf("===Choisissez le nombre mystere pour le second joueur===\n\n");
printf("Quel nombre avez-vous choisi ?");
scanf("%ld", &NombreMystere);

while (lignes < 170)
{
printf("Interdit de remonter la page!!!\n");
lignes++;
}

printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
printf("*****Le joueur numero 2 a entre le nombre mystere*****");
printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
printf("===A votre tour, joueur numero 1, trouver ce nombre mystere !===");
printf("\n");
printf("Quel est-ce nombre ?");

do
{
scanf("%ld", &NombreEntre);

if (NombreMystere > NombreEntre)
{
printf("\n\n");
printf("c'est plus !");
coups++;
}

else if (NombreMystere < NombreEntre)
{
printf("\n\n");
printf("c'est moins !");
coups++;
}

else
{
printf("\n\n\n\n\n");
printf("===Bravo vous avez trouve le nombre en %ld coups ===\n", coups);
printf("\n\n");
}

if (NombreMystere==NombreEntre)
{
printf("Voulez-vous faire une autre partie?\n");
printf("1. Menu\n");
printf("0. Quitter\n");
printf("Que choisissez-vous?");
scanf("%ld", &continuer);
}
}
}

je pense que sa devrais marché parfaitement maintenant !

filou85
filou85
Niveau 10
18 avril 2012 à 15:55:46

Vous êtes vraiment des quiches... aucune correction proposée ne corrige l'erreur alors que le message d'erreur est explicite:

error : expected 'while' before '}' token

Traduit en français ça donne
erreur: 'while' attendu avant le symbole '}'

En gros tu fais

do
{
scanf("%ld", &NombreEntre);
...

sans mettre de un 'while(condition de continuation)' à la fin du bloc... D'où l'erreur

filou85
filou85
Niveau 10
18 avril 2012 à 15:57:54

Edit: j'ai mal vu, il y a plusieurs erreurs avec le do while, dont une a été corrigée par gabria

volker94
volker94
Niveau 26
18 avril 2012 à 15:58:10

Va sur le forum créations de jeux il y'a des programmeurs la bas :ok:

Pseudo supprimé
Pseudo supprimé 18 avril 2012 à 16:15:25

J'ai fait sa à l'oeil , j'ai pas visual studio sur ce pc .

b0rgy
b0rgy
Niveau 8
18 avril 2012 à 16:17:52

si tu veux un editeur avec synthax highlighting rapide et simple pour programmer en C, je te conseille Geany, avec MinGW ca te fait un petit IDE :)

Moa53
Moa53
Niveau 9
18 avril 2012 à 16:48:36
  1. include <stdio.h>
  2. include <stdlib.h>
  3. include <time.h>
  4. include <math.h>

int main(int argc, char *argv[])
{
long NombreJoueur= 0, NombreEntre=0,nombreMax = 0, NombreMystere= 0, coups= 1, continuer= 1, niveau= 0, lignes= 0;
const long MIN = 1;

while (continuer = 1)
{
printf("Bienvenue dans mon jeu !\n");
printf("Le but consiste a deviner le nombre exacte en un nombre minimum de coups !\n\n\n");
printf("===Choisissez votre mode de jeu ===\n\n");
printf("\n");
printf("1.Solo\n\n");
printf("2.Deux joueurs\n\n");
printf("Que choisissez-vous?");

scanf("%ld", &NombreJoueur);

switch (NombreJoueur)
{
case 1 :
(NombreJoueur= 1);
break;
case 2 :
(NombreJoueur= 2);
break;
default :
printf("Cette valeur n'est pas valide\n");
}

printf("\n\n");

printf("===Choississez votre niveau===\n");
printf("\n");
printf("1. Niveau 1 a 10\n\n");
printf("2. Niveau 1 a 100\n\n");
printf("3. Niveau 1 a 1000\n\n");
printf("Que choisissez-vous ?");
scanf("%ld", &niveau);

switch(niveau)
{
case 1 :
(nombreMax= 10);
break;
case 2 :
(nombreMax= 100);
break;
case 3 :
(nombreMax= 1000);
break;
default :
printf("Cette valeur n'est pas valide\n");
}

//Mode Solo

if (NombreJoueur!= 2)
{
srand (time(NULL)); // Génération du nombre aléatoire
NombreMystere = (rand() % (nombreMax - MIN + 1)) + MIN;

printf("\n\n\n\n\n\n\n\n\n\n\n\n\n");

printf("Trouve le nombre mystere !!\n\n");
printf("\n");
printf("Quel est-ce nombre ?");
do
{
scanf("%ld", &NombreEntre );

if (NombreMystere > NombreEntre)
{
printf("C'est plus !\n");
coups++;
}
else if (NombreMystere < NombreEntre)
{
printf("C'est moins !\n");
coups++;
}
else
{
printf("Bravo tu as trouve le nombre en %ld coups !", coups);
}
}
while (NombreMystere!=NombreEntre);
}

// Mode 2 joueurs

if (NombreJoueur!=1)
{

srand (time(NULL)); // Génération du nombre aléatoire
NombreMystere = (rand() % (nombreMax - MIN + 1)) + MIN;

printf("\n\n");

printf("===Choisissez le nombre mystere pour le second joueur===\n\n");
printf("Quel nombre avez-vous choisi ?");
scanf("%ld", &NombreMystere);
while (lignes < 170)
{
printf("Interdit de remonter la page!!!\n");
lignes++;
}
printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
printf("*****Le joueur numero 2 a entre le nombre mystere*****");
printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
printf("===A votre tour, joueur numero 1, trouver ce nombre mystere !===");
printf("\n");
printf("Quel est-ce nombre ?");
do
{
scanf("%ld", &NombreEntre);

if (NombreMystere > NombreEntre)
{
printf("\n\n");
printf("c'est plus !");
coups++;
}
else if (NombreMystere < NombreEntre)
{
printf("\n\n");
printf("c'est moins !");
coups++;
}
else
{
printf("\n\n\n\n\n");
printf("===Bravo vous avez trouve le nombre en %ld coups ===\n", coups);
printf("\n\n");
}
if (NombreMystere==NombreEntre)
{
printf("Voulez-vous faire une autre partie?\n");
printf("1. Menu\n");
printf("0. Quitter\n");
printf("Que choisissez-vous?");
scanf("%ld", &continuer);
}
}
while (NombreMystere!=NombreEntre);
}
}
return 0;
}

J'ai oublié de commenté et du coup je sais plus ce que j'ai corrigé, mais bref là ça passe. Par contre il y a au moins une autre erreur de débutant (mais qui n'empechera pas le code de se lancer), et quand tu l'auras trouvée, tu auras une autre surprise en lançant le mode 1 joueur, mais j'en dis pas plus :p

Moa53
Moa53
Niveau 9
18 avril 2012 à 16:57:45

En fait on tu avais juste oublié le "while (NombreMystere!=NombreEntre); " à la fin du deuxième do...while

Mais bref, y a encore quelques soucis dans ce code, mais à toi de trouver ^^

ashfeniu
ashfeniu
Niveau 10
18 avril 2012 à 17:05:10

LE JEU MYSTEEEEEEEERE :fete:

Mon premier programme "utile" en C :rire: Ce tutoriel est franchement pas mal, mais le C c'est vite soulant, en tout cas arrivé à un certain niveau (les pointeurs et les strings :fou: ). En tout cas moi il m'a dégoûté de la prog, et je conseillerais à n'importe qui se lançant dans la chose de faire du C# par exemple, bien moins verbeux et plus soft pour un premier language :-)

b0rgy
b0rgy
Niveau 8
18 avril 2012 à 17:13:04

boarf, les pointeurs une fois qu'on a bien compris c'est pas si complique que ca, pareil pour les strings. Perso je faisait du Delpi avant et j'aime beaucoup le degre de controle qu'on a avec le C, comme l'allocation au byte pres de la memoire dont on a besoin etc. Et la synthaxe peut-etre un poil plus compliquee que les autres langages oblige a etre rigoureux :-)))

Sous forums
  • Aide à l'achat Mac
  • Steam Deck
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Macintosh
  • Hardware
La vidéo du moment