Pb en c [Fermé]

Signaler
Messages postés
111
Date d'inscription
dimanche 13 mars 2005
Statut
Membre
Dernière intervention
14 mars 2010
-
oupsman
Messages postés
318
Date d'inscription
mercredi 26 décembre 2007
Statut
Membre
Dernière intervention
24 octobre 2008
-
Bonjour,
Je suis en train de construire pour un devoire un programme qui résoud les équations du second degré.

Or l'énnocé me demande de prévenir l'utilisateur lorsqu'il met a=0 dans ax²+bx+c=0. Donc voici le morceau de mon programme ou cela se trouve:

float a;
.
.
.
switch(x)
{
.
.
.
case 2:
printf("equation du second degres:\n\n");
do
{
printf("entrer a: ");
scanf("%f",&a);
}
while(a=0);
{
printf("\nentrer b: ");
scanf("%f",&b);
printf("\nentrer c: ");
scanf("%f",&c);
printf("\n equation: P(x)=%.2fx^2 + %.2fx + %.2f\n\n",a,b,c);
.
.
.
}

Or losque je compile puis éxécule le programme, il ne tien pas compte du do while càd que même si je met a=0, il va passer à la suite sans me redemander mon a.

voila qq pourai t-il m'aider. Merci

ps: j'utilise Dev c++ et ne peut programmer qu'en c.

5 réponses

Messages postés
111
Date d'inscription
dimanche 13 mars 2005
Statut
Membre
Dernière intervention
14 mars 2010
11
Merci ! je me suis rendu compte apres de al faute du ==
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 77415 internautes nous ont dit merci ce mois-ci

oupsman
Messages postés
318
Date d'inscription
mercredi 26 décembre 2007
Statut
Membre
Dernière intervention
24 octobre 2008
9
salut,

si ton problème est résolu, n'oublies pas de marquer statut "résolu"
à +
Messages postés
318
Date d'inscription
mercredi 26 décembre 2007
Statut
Membre
Dernière intervention
24 octobre 2008
9
Salut,

il faut faire :

....
....
do
{
printf("entrer a: ");
scanf("%f",&a);
if(a==0) printf("\nAttention, la valeur de \"a\" doit etre different de zéro\n");
}
while(a==0);
....
....
Messages postés
199
Date d'inscription
samedi 22 mars 2008
Statut
Membre
Dernière intervention
22 mars 2012
5
Erreur de débutant très classique =P

Le fait de confondre, dans if par exemple, le x=0 et x==0.
Messages postés
1930
Date d'inscription
vendredi 21 avril 2006
Statut
Membre
Dernière intervention
5 août 2015
109
Il eût été plus élégant d'écrire :

while (!a);


Mais en C, oublie les boucles do...while et sa copine du même style. Tu peux tout faire avec une boucle for( ; ; ).
Messages postés
500
Date d'inscription
samedi 23 juin 2007
Statut
Membre
Dernière intervention
19 juin 2011
185
Mais en C, oublie les boucles do...while et sa copine du même style. Tu peux tout faire avec une boucle for( ; ; ).

@tatou_38 : Ce que tu dis est très juste mais le For et le While n'ont pas le même usage. While devrait s'utiliser lorsque le nombre d'itérations n'est pas connu à l'avance tandis que For devrait s'utiliser lorsque le nombre d'itérations est connu à l'avance. Mais je conçois que le For soit bien plus pratique, d'ailleurs je l'utilise aussi avec des break quand ça simplifie mon code par rapport au While. Le Do While est effectivement déconseillé par les bonnes pratiques de la programmation structurée mais il est très pratique lorsqu'on veut utiliser correctement un While pour la saisie utilisateur et qu'on ne veut pas répéter le message de demande de saisie (car en programmation structurée on demande la saisie avant de rentrer dans la boucle et on la redemande ensuite dans la boucle et tout à la fin... c'est là que le Do While vient à la rescousse en lu disant ce qu'il doit faire avant même de poser la condition).