Programme en c:quelle est la faute?
Résolu/Fermé
informatiquetech
Messages postés
225
Date d'inscription
mercredi 14 janvier 2015
Statut
Membre
Dernière intervention
29 février 2016
-
Modifié par Whismeril le 14/01/2015 à 17:16
Nero15 Messages postés 2657 Date d'inscription vendredi 12 juin 2009 Statut Membre Dernière intervention 18 janvier 2015 - 18 janv. 2015 à 18:51
Nero15 Messages postés 2657 Date d'inscription vendredi 12 juin 2009 Statut Membre Dernière intervention 18 janvier 2015 - 18 janv. 2015 à 18:51
A voir également:
- Programme en c:quelle est la faute?
- Programme demarrage windows 10 - Guide
- Désinstaller programme windows 10 - Guide
- Mettre en veille un programme - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
- Forcer la fermeture d'un programme - Guide
2 réponses
Zephirr
Messages postés
317
Date d'inscription
mardi 30 décembre 2014
Statut
Membre
Dernière intervention
6 novembre 2015
100
14 janv. 2015 à 21:00
14 janv. 2015 à 21:00
Il faut mettre une seule boucle
while( nombresaisi != nombre)avec des conditions
ifdedans.
Nero15
Messages postés
2657
Date d'inscription
vendredi 12 juin 2009
Statut
Membre
Dernière intervention
18 janvier 2015
104
18 janv. 2015 à 18:51
18 janv. 2015 à 18:51
Bonjour,
Ça ne marche pas car dés que les conditions de tes boucles ne sont pas vérifiés tu sors de la boucle en question sans y revenir pour passer au reste du code, une fois sorti des trois boucles le programme termine, ce qui explique ton résultat.
pour une solution propre, prend exemple des codes donnés plus haut ;)
cordialement.
Ça ne marche pas car dés que les conditions de tes boucles ne sont pas vérifiés tu sors de la boucle en question sans y revenir pour passer au reste du code, une fois sorti des trois boucles le programme termine, ce qui explique ton résultat.
pour une solution propre, prend exemple des codes donnés plus haut ;)
cordialement.
Modifié par informatiquetech le 16/01/2015 à 21:30
C'est comme ceci:#include <stdio.h>
#include <stdlib.h>
void main()
{
double nombresaisi=0, nombre=0;
printf("saisissez un nombre: ");
scanf("%f", &nombre);
printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
printf("quel est le nombre? ");
scanf("%f", &nombresaisi);
printf("\n");
while (nombresaisi!=nombre)
{
if (nombresaisi>nombre)
{
printf("ton nombre est plus grand.");
printf("\n");
printf("quel est le nombre? ");
scanf("%f", &nombresaisi);
printf("\n");
}
else if (nombresaisi<nombre)
{
printf("ton nombre est plus petit.");
printf("\n");
printf("quel est le nombre? ");
scanf("%f", &nombresaisi);
printf("\n");
}
}
if (nombresaisi==nombre)
{
printf("bravo tu l'as trouve ");
}
printf("tu as gagne");
return 0;
}
16 janv. 2015 à 22:37
Pourquoi avoir remplacé int main() en void main() ?
Du coup, tu as rajouté plein de fautes dans ce programme...
scanf("%f", &nombre);
Il faut mettre %lf (L minuscule).
Pareil pour tous les scanf().
while (nombresaisi!=nombre)
Pas terrible la comparaison entre deux doubles. Il faut plutôt vérifier que la différence entre les deux n'est pas suffisamment petite.
printf("tu as gagne");
Il faut le mettre juste en dessous de : printf("bravo tu l'as trouve").
Il faut utiliser un compteur aussi. Car là en état, le joueur ne peut pas perdre.
N'oublie pas de mettre un printf("\n"); juste au dessus du return 0; pour vider le buffer écran.
Note : n'oublie pas d'utiliser la balise <code c> pour poster ton code la prochaine fois. Exemple :
<code c>ici tu mets ton code</code>
Cdlt,