| ||||||||
Nouvel astucien | Bonjour, cela doit faire 2 heures que j'essaye bon nombre de recherches googles et que je fais des essaies multiples sur code block sans parvenir à trouver comment effectuer ma tâche. J'ai deux petits problèmes dans le cadre de la création d'un programme d'entraînement: 1°)Je me vois contraint de définir une limite dans les nombres que je doit prendre en tant que variable, une limite au niveau du nombre de ciffre après la virgule. Par exemple, lorsque je demande à l'utilisateur de mon programme de rentrer la série de nombre, j'aimerai définir que le nombre "3.2543" soit dit trop précis par un "printf", or pour cela, il faut que je précise que les nombre contenant plus de 3 chiffres après la virgules ne m'intéresse pas, or je ne sais pas comment effectuer une telle tache. 2°)Je fais cela grâce à un if else, or, pour chaque if et else, je "return" une valeur comprise entre 0 et 3 suivant le problèmes survenu (valeur qui sera traitée plus tard par un fichier "message d'erreur". Or, pour cette fonction, je n'arrive pas a en définir le prototype (son type, ses entrées) car je ne rentre aucune variable et je n'effectue aucune opération, juste une comparaison.* Si cela peut vous aider, le corps de la fonction ressemble pour le moment à
{
if
(!(
a > -500 && a < 500
&& b > -500 && b < 500
&& c > -500 && c < 500
&& d > -500 && d < 500
&& e > -500 && e < 500
))
return 1;
if
precision
return 2;
if
(
borneInf < borneSup || borneInf < -500 || borneSup > 500
)
return 3;
else
return 0;
}
(C'est pas très jolie je sais, mais j'ai pas eu d'idée sur comment faire autrement :s)
Merci d'avance.
Modifié par Maniz le 09/11/2010 13:46 | |||||||
Publicité | ||||||||
![]() ![]() | Bonjour, pourquoi pas Ton nombre - Partie entière(Ton nombre * 1000) / 1000 ? Si pas 0, trop précis ? | |||||||
Nouvel astucien | @Escalpion Merci de ta réponse Hmmm, je ne suis pas sur de comprendre la logique de ton calcul, encore moins sa possible utilisation pour restreindre l'utilisation de nombre ayant trop de chiffres après la virgule (la restreindre, pas la corriger). | |||||||
![]() ![]() | Mon test te dit s'il y a plus de trois caractères significatifs après la virgule, c'est tout. (edit) Ça doit aussi être possible avec une variété de modulo. Modifié par Esclapion le 09/11/2010 14:35 | |||||||
Astucien | Message original par Maniz Tu peux aussi controler la précision a la saisie: Si tu utilises scanf, tu peux jouer sur les "format specifier" pour indiquer la précision que tu demandes. Si tu utilises getc, tu bloques la saisie après la décimale qui t'intéresse. | |||||||
|
Les bons plans du moment PC Astuces | Tous les Bons Plans | |||||||||||||||
|