Programme en C : Boucle Do ... While
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
Configuration: Windows Vista Firefox 3.0.3
6 réponses
-
ModérateurT'as aussi un soucis là :
if (Traitement=1)
Ton programme s'arrête après que tu aies tapé ton Y ou N ? -
ContributeurOui, 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 ;) -
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 :( -
Oui :(
-
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 :( -
ModérateurSalut,
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
-