Programme en C : Boucle Do ... While
Sunshiine
-
Sunshiine -
Sunshiine -
Bonjour,
Je suis étudiant en Informatique et j'ai mes premiers cours de programmation, notamment en C. Je suis un peu perdu j'essaie de faire un programme qui répond à certaine condition. Le programme est juste et fonctionne correctement mais je ne comprends pas comment utiliser Do .. While pour recommencer le programme.. J'espère être compréhensible..
#include<stdio.h>
#include<stdlib.h>
void main()
{
char Ciel, Precipitation, Vent, Recommencer;
int Traitement;
printf(" *************************\n");
printf(" *Le touriste en vacances*\n");
printf(" *************************\n");
do
{
Traitement=0;
printf("Le ciel est-il bleu ou couvert? (B,C)\n");
fflush(stdin);
scanf("%c",&Ciel);
printf("\n");
printf("Y a-t-il du soleil ou de la pluie? (S,P)\n");
fflush(stdin);
scanf("%c",&Precipitation);
printf("\n");
printf("Quelle est l'origine du vent? (N,E,S,O)\n");
fflush(stdin);
scanf("%c",&Vent);
printf("\n");
if (((Ciel=='B')||(Ciel=='b'))||((Ciel=='C'&&Precipitation=='N'&&Vent=='E')||(Ciel=='c'&&Precipitation=='n'&&Vent=='e')))
{
Traitement=1;
}
if (Traitement=1)
{
printf("Notre touriste reste\n");
}
else
{
printf("Notre touriste rentre chez lui\n");
}
printf("\n");
printf("Voulez-vous recommencer? (Y/N)\n");
scanf("%c",&Recommencer);
}while (Recommencer='y'||Recommencer=='Y');
}
Voilà la bête :D
Merci d'avance
Je suis étudiant en Informatique et j'ai mes premiers cours de programmation, notamment en C. Je suis un peu perdu j'essaie de faire un programme qui répond à certaine condition. Le programme est juste et fonctionne correctement mais je ne comprends pas comment utiliser Do .. While pour recommencer le programme.. J'espère être compréhensible..
#include<stdio.h>
#include<stdlib.h>
void main()
{
char Ciel, Precipitation, Vent, Recommencer;
int Traitement;
printf(" *************************\n");
printf(" *Le touriste en vacances*\n");
printf(" *************************\n");
do
{
Traitement=0;
printf("Le ciel est-il bleu ou couvert? (B,C)\n");
fflush(stdin);
scanf("%c",&Ciel);
printf("\n");
printf("Y a-t-il du soleil ou de la pluie? (S,P)\n");
fflush(stdin);
scanf("%c",&Precipitation);
printf("\n");
printf("Quelle est l'origine du vent? (N,E,S,O)\n");
fflush(stdin);
scanf("%c",&Vent);
printf("\n");
if (((Ciel=='B')||(Ciel=='b'))||((Ciel=='C'&&Precipitation=='N'&&Vent=='E')||(Ciel=='c'&&Precipitation=='n'&&Vent=='e')))
{
Traitement=1;
}
if (Traitement=1)
{
printf("Notre touriste reste\n");
}
else
{
printf("Notre touriste rentre chez lui\n");
}
printf("\n");
printf("Voulez-vous recommencer? (Y/N)\n");
scanf("%c",&Recommencer);
}while (Recommencer='y'||Recommencer=='Y');
}
Voilà la bête :D
Merci d'avance
A voir également:
- Programme en C : Boucle Do ... While
- Programme demarrage windows - Guide
- Mettre en veille un programme - Guide
- Message programmé iphone - Guide
- Programme word gratuit - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
6 réponses
T'as aussi un soucis là :
if (Traitement=1)
Ton programme s'arrête après que tu aies tapé ton Y ou N ?
if (Traitement=1)
Ton programme s'arrête après que tu aies tapé ton Y ou N ?
Oui, il y a l'erreur que kilian t'a signalé dans ta boucle while.
Et en plus, la fameuse erreur du scanf("%c");
Pour rester homogène avec ce que tu as fait, je rajouterai un fflush(stdin); avant scanf("%c",&Recommencer);
Sinon juste pour rappeler fflush(stdin), n'est pas garantit de marcher ;)
Et en plus, la fameuse erreur du scanf("%c");
Pour rester homogène avec ce que tu as fait, je rajouterai un fflush(stdin); avant scanf("%c",&Recommencer);
Sinon juste pour rappeler fflush(stdin), n'est pas garantit de marcher ;)
Merci beaucoup j'ai modifié ce '=' manquant mais maintenant mon programme s'arrête après avoir appuyer sur une touche .. Le ('Press Any Key To Continue.. )
Désolé d'être boulet :(
Désolé d'être boulet :(
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Merci beaucoup j'ai modifié ce '=' manquant mais maintenant mon programme s'arrête après avoir appuyer sur une touche .. Le ('Press Any Key To Continue.. )
Désolé d'être boulet :(
Désolé d'être boulet :(
Salut,
Tu as oublié un signe "=", donc comme ta comparaison est en fait une affectation, la condition est toujours vraie (tant que tu n'affectes pas 0):
Tu as oublié un signe "=", donc comme ta comparaison est en fait une affectation, la condition est toujours vraie (tant que tu n'affectes pas 0):
while (Recommencer=='y'||Recommencer=='Y');
En fait voilà le but de mon programme
/* l'etat des précipitations pluie ou non */
/* et le sens du vent, nord sud est, ouest */
/* en fonction de ces données : */
/* si ciel bleu, il reste */
/* si il pleut il part */
/* si il fait couvert sans pleuvoir et que le vent viens de l'est, il reste*/
/* en tout autre circonstance, il part
/* l'etat des précipitations pluie ou non */
/* et le sens du vent, nord sud est, ouest */
/* en fonction de ces données : */
/* si ciel bleu, il reste */
/* si il pleut il part */
/* si il fait couvert sans pleuvoir et que le vent viens de l'est, il reste*/
/* en tout autre circonstance, il part