|
|
|
|
Bonjour,
j'ai un exercice qui consiste à ecrire un algorithme qui demande à l'utilisateur un nombre compris entre 0 et 20 jusqu'a ce que la réponse convienne. cette partie j ai reussi à faire mais après pour traduire cet algorithme en programme C je n 'y arrive plus !!!merci de bien vouloir m'aider!!
voilà ce que j ai fais pour l'algorithme:
algorithme
% demande à l'utilisateur un nombre compris entre 0 et 20
%declaration de variable
flottant : n
debut : %du traitement
tant que (n<0 ou n>20)faire
afficher ("erreur entrer un nombre compris entre 0 et 20 )
lire(n)
fin tant que
afficher ("saisie correcte")
fin
Configuration: Windows Vista Internet Explorer 7.0
Moi j'aurais une possibilite un peu differente de ton algo proposé afin de réduire le nombre d'événement...
|
Oui mais lorsque je rentre le programme dans l ordinateur ça me met plein d 'ereur
|
#include<stdio.h>
|
Ta deuxième version est bien plus jolie je trouve. Car le coup du while(1) et un joli return en plein milieu c'est du code spaghetti ^^. Algorithmiquement ta première version est nickel ;)
#include<stdio.h>
int main(void)
{
//demande à l'utilisateur un nombre compris entre 0 et 20
//declaration de variable
float n;
//debut du traitement
//on demande d'entrer une premiere fois le nombre
printf ("entrer un nombre entre 0 et 20");
scanf ("%f",&n);
//tant que le nombre n'est pas dans l'intervalle on recommence
while(n<0 && n>20)
{
printf ("erreur entrer un nombre entre 0 et 20");
scanf ("%f",&n);
}
//quand on a une bonne valeur on l'affiche
printf ("la valeur de n est : %f\n",n);
return 0;
//fin du traitement
}
Cdlt Google is your friend |
Salut,
#include <stdio.h>
int main(void){
float n;
while(1){
puts("saisir valeur entre 0 et 20");
scanf("%f",&n);
if(n<20 && n>0) return n;
}
return 0;
}
avec l'autre version :
#include <stdio.h>
int main(void){
float n;
do{
puts("saisir valeur entre 0 et 20");
scanf("%f",&n);
}while(n>20 || n<0);
return 0;
}
Non seulement on économise 3 caractères de plus dans ta version "spaghetti". Et en plus le compilateur ne peut pas optimiser aussi bien qu'avec l'autre version. L'inconvénient des boucles infinis avec un break ou return, c'est qu'algorithmiquement c'est moins beau, et en plus le compilateur est moins efficace. ;) Google is your friend |