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

Probleme avec codage en C

the_bg_for_ever
the_bg_for_ever
Niveau 2
28 février 2017 à 00:13:23

Bonjour,

J'ai essayer de faire un mini jeu ou je dois trouver un nombre mystere. Sauf que je constate qu'apres trois essaies, meme si je n'ai pas trouver le bon nombre, le programme considere que je l'ai trouver. J'aimerais savoir SVP pourquoi? Voila mon codage :

  1. include <stdio.h>
  2. include <stdlib.h>

int main()
{
int nombre = 15;
int nombrechoisis = 0;
printf("Devine le nombre ?");
scanf("%d", &nombrechoisis);
while (nombrechoisis > nombre)
{
printf("Un peu plus bas");
scanf("%d", &nombrechoisis);
}
while (nombrechoisis < nombre)
{
printf("Un peu plus haut");
scanf("%d", &nombrechoisis);
}
if(nombrechoisis = nombre)
{
printf("bravo");
}
}

LGV
LGV
Niveau 28
28 février 2017 à 00:28:44

Il y a plusieurs erreurs dans ton programme ; de logique, et de "syntaxe".

Plutot que les corriger directement, je t'encourage a apprendre des maintenant a te servir d'un debugger : cela te permet d'executer le programme etape par etape, inspecter les valeurs, etc. Et tu comprendras rapidement de toi-meme les erreurs.

Message édité le 28 février 2017 à 00:30:15 par LGV
the_bg_for_ever
the_bg_for_ever
Niveau 2
28 février 2017 à 00:37:06

Non y a pas d'erreurs de syntaxes car le programme se lance normalement et y a aucun bug. C'est juste un probleme avec les boucles

LGV
LGV
Niveau 28
28 février 2017 à 00:57:25

Le programme compile, mais il y a bien une erreur de "syntaxe" dans le sens ou tu effectues une operation qui n'est pas celle que tu souhaites en terme de logique.

if(nombrechoisis = nombre)

"=" est une affection, et non pas un test "=="

Message édité le 28 février 2017 à 00:57:56 par LGV
chupadu84_2
chupadu84_2
Niveau 11
28 février 2017 à 02:01:37

Tu as un problème avec tes boucles while. Si tu mets un nombre trop petit puis un nombre trop grand ton programme va sortir des 2 boucles et se terminer.
Il serait plus logique d'utiliser un seul while avec comme condition que nombrechoisis est différent de nombre et à l'intérieur de mettre 2 if pour tester si le nombre est trop grand ou trop petit et afficher l'indication correspondante. Et du coup quand tu sortiras de cette boucle while c'est que le nombre sera le bon donc tu peux afficher bravo

the_bg_for_ever
the_bg_for_ever
Niveau 2
28 février 2017 à 03:25:39

Bon voila, c'est un peu mieux mais sauf que la je rencontre un autre problème, il m'affiche pas le "bravo" quand je trouve le bon nombre. Voila le code :

  1. include <stdlib.h>

int main()
{
int nombre = 15;
int nombrechoisis = 0;
printf("Devine le nombre ?");
scanf("%d", &nombrechoisis);

while (nombrechoisis != nombre)
{
if(nombrechoisis < nombre)
{
printf("Un peu plus haut");
scanf("%d", &nombrechoisis);
}
else if(nombrechoisis > nombre)
{
printf("Un peu plus bas");
scanf("%d", &nombrechoisis);
}
else
{
printf("Bravo");
}
}

}

chupadu84_2
chupadu84_2
Niveau 11
28 février 2017 à 08:18:14

Le bravo doit être en dehors de ta boucle while

#include <stdlib.h>
int main()
{
int nombre = 15;
int nombrechoisis = 0;
printf("Devine le nombre ?");
scanf("%d", &nombrechoisis);

while (nombrechoisis != nombre)
{
	if(nombrechoisis < nombre)
	{
		printf("Un peu plus haut");
	}
	else
	{
		printf("Un peu plus bas");
	}
	scanf("%d", &nombrechoisis);
}

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