Comment Répéter un programme
faresk93
Messages postés
18
Date d'inscription
Statut
Membre
Dernière intervention
-
faresk93 Messages postés 18 Date d'inscription Statut Membre Dernière intervention -
faresk93 Messages postés 18 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai essayé avec mon programme pour que ça se répète sous la demande de l'utlisateur mais en vain,
Voici mon code C :
#include<stdio.h>
#include<conio.h>
#include<stdbool.h>
main()
{
float temp;
char c;
bool ok=true;
while (ok==true)
{
printf("Write a temperature : ");
scanf("%f",&temp);
if (temp<=0)
printf("\nIce");
else
if (temp>0 && temp<=100)
printf("\nWater");
else
printf("\nSteam");
printf("\nRepeat ?");
printf("\nY/N : ");
do
scanf("%char",&c);
while((c=='y')||(c=='n'));
switch(c)
{
case('y') : break;
case('n') : ok=false;break;
default : break;
}
}
}
Quand j'exécute Ceci, quand je saisi y ou n il écrit "Write a temperature : " puis la réponse précédente et le curseur se met enfin sur Repeat Y/N.
Aidez-Moi SVP !
J'ai essayé avec mon programme pour que ça se répète sous la demande de l'utlisateur mais en vain,
Voici mon code C :
#include<stdio.h>
#include<conio.h>
#include<stdbool.h>
main()
{
float temp;
char c;
bool ok=true;
while (ok==true)
{
printf("Write a temperature : ");
scanf("%f",&temp);
if (temp<=0)
printf("\nIce");
else
if (temp>0 && temp<=100)
printf("\nWater");
else
printf("\nSteam");
printf("\nRepeat ?");
printf("\nY/N : ");
do
scanf("%char",&c);
while((c=='y')||(c=='n'));
switch(c)
{
case('y') : break;
case('n') : ok=false;break;
default : break;
}
}
}
Quand j'exécute Ceci, quand je saisi y ou n il écrit "Write a temperature : " puis la réponse précédente et le curseur se met enfin sur Repeat Y/N.
Aidez-Moi SVP !
A voir également:
- Répéter dans un programme
- Programme demarrage windows - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
- Mettre en veille un programme - Guide
- Forcer la fermeture d'un programme - Guide
- Message programmé iphone - Guide
2 réponses
scanf("%char",&c);
Mets plutôt : scanf("%c",&c); getchar();
Le getchar() est à mettre en plus pour vider le '\n' stocké dans le buffer clavier.
Mets plutôt : scanf("%c",&c); getchar();
Le getchar() est à mettre en plus pour vider le '\n' stocké dans le buffer clavier.
Bonjour,
Essayer avec ca, pas sur que ca fonctionne, je ne l'ai pas testé
main()
{
float temp;
char c;
bool ok=false;
while (ok==true)
{
printf("Write a temperature : ");
scanf("%f",&temp);
if (temp<=0)
printf("\nIce");
else
if (temp>0 && temp<=100)
printf("\nWater");
else
printf("\nSteam");
printf("\nRepeat ?");
printf("\nY/N : ");
scanf("%c",&c);
if (c == "N"||c == "n") ok= false;
}
}
voila qui devrait repeter le programme le temps que l'utilisateur n'a pas mis n ou N dans la commande "repeter"
Cordialement Scinarf
Essayer avec ca, pas sur que ca fonctionne, je ne l'ai pas testé
main()
{
float temp;
char c;
bool ok=false;
while (ok==true)
{
printf("Write a temperature : ");
scanf("%f",&temp);
if (temp<=0)
printf("\nIce");
else
if (temp>0 && temp<=100)
printf("\nWater");
else
printf("\nSteam");
printf("\nRepeat ?");
printf("\nY/N : ");
scanf("%c",&c);
if (c == "N"||c == "n") ok= false;
}
}
voila qui devrait repeter le programme le temps que l'utilisateur n'a pas mis n ou N dans la commande "repeter"
Cordialement Scinarf
J'ai fais les tests avec ca et ca marche chez moi.
main()
{
float temp;
char c;
bool ok=1;
while (ok)
{
printf("Write a temperature : ");
scanf("%f",&temp);
if (temp<=0)
printf("\nIce");
else
if (temp>0 && temp<=100)
printf("\nWater");
else
printf("\nSteam");
printf("\nRepeat ?");
printf("\nY/N : ");
scanf("%c",&c);
if (c == 'N'||c == 'n')
{
ok= 0;
}
}
}
Dis moi si ca marche par la suite.
main()
{
float temp;
char c;
bool ok=1;
while (ok)
{
printf("Write a temperature : ");
scanf("%f",&temp);
if (temp<=0)
printf("\nIce");
else
if (temp>0 && temp<=100)
printf("\nWater");
else
printf("\nSteam");
printf("\nRepeat ?");
printf("\nY/N : ");
scanf("%c",&c);
if (c == 'N'||c == 'n')
{
ok= 0;
}
}
}
Dis moi si ca marche par la suite.
Lorsque je l'exécute maintenant, ça marche bien sauf qu'il accepte toute réponse à la question Y/N ? et recommece le programme même avec la réponse 'n'
Ah, ça change tout :-).
while((c=='y')||(c=='n'));
Cela veut dire, on boucle tant que c vaut 'y' ou 'n'
Il faudrait plutôt, mettre : while( ! ((c=='y') || (c=='n'))); ou while ((c!='y') && (c!='n'));
Voici une image de ce que j'ai :
http://data.imagup.com/10/1175413833.png