> Tous les forums > Forum Autres langages
 Précision de variable en Langage C
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
Maniz
  Posté le 09/11/2010 @ 13:45 
Aller en bas de la page 
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;
}

{

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é
Esclapion
 Posté le 09/11/2010 à 14:26 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Grand Maître astucien

Bonjour,

pourquoi pas Ton nombre - Partie entière(Ton nombre * 1000) / 1000 ?

Si pas 0, trop précis ?

Maniz
 Posté le 09/11/2010 à 14:30 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
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).

Esclapion
 Posté le 09/11/2010 à 14:33 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Grand Maître astucien

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
breizhbugs
 Posté le 09/11/2010 à 16:27 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien
Message original par Maniz

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.

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.

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
31,44 €Hub Aukey USB C 8 en 1 (USB 3.0, HDMI 4K, RJ45, lecteur SD et MicroSD, USB C PD 100W) à 31,44 €
Valable jusqu'au 24 Avril

Amazon fait une promotion sur le Hub Aukey USB C 8 en 1 qui passe à 31,44 €. Ce Hub à brancher sur un port USB C vous permettra d'ajouter 2 ports USB 3.0, un port USB 2.0, un lecteur de cartes mémoire SD et MicroSD, un port Ethernet Gigabit RJ45 et un port HDMI 4K à votre ordinateur portable ou votre smartphone. Et vous pourrez même recharger votre ordinateur avec la prise USB-C PD 100W intégrée.


> Voir l'offre
22,80 €Bracelet connecté Xiaomi Mi Band 5 avec tracker cardiaque IP67, écran OLED et Bluetooth 5 à 22,80 €
Valable jusqu'au 25 Avril

Cdiscount fait une promotion sur dernière version du bracelet connecté de fitness Xiaomi Mi Band 5 avec tracker cardiaque à 22,80 €. Ce bracelet est étanche IP67 et possède le bluetooth 5.0. Avec lui, vous pouvez suivre votre rythme cardiaque, mais également vos pas et vos calories dépensées que vous pourrez afficher sur son écran OLED couleur, de même que l'heure courante. Il intègre également un réveil vibreur silencieux (pratique pour se réveiller la nuit sans réveiller sa moitié) et peut suivre vos phases de sommeil. Vous pourrez configurer le bracelet et suivre votre activité depuis n'importe quel appareil mobile avec Bluetooth 5 sous Android ou iOS. Vous pourrez contrôler votre musique du téléphone depuis le bracelet et afficher vos notifications.

Cette version française est directement expédiée depuis un entrepôt français. Sa batterie autorise une autonomie de 20 jours entre 2 recharges.


> Voir l'offre
32,99 €Compresseur portable autonome Xiaomi Mija à 32,99 €
Valable jusqu'au 24 Avril

Cdiscount fait une promotion sur le compresseur portable autonome Xiaomi Mija qui passe à 32,99 € livré gratuitement. Ce compresseur à emporter facilement avec vous comporte un écran (où vous pourrez choisir la pression à atteindre en PSI ou BAR) une batterie de 2000 mA et vous permettra de gonfler vos jouets (41 pièces avec une charge), pneus de vélo, de trotinette, de moto (6 pneus avec une charge) et même de voiture (5 pneus avec une charge) facilement.

Le câble est accompagné d'un embout pour valve Schrader et un adapteur Presta et une aiguille sont fournis. Le compresseur se recharge via une prise Micro USB.


> Voir l'offre

Sujets relatifs
Apprendre les bases du langage VBA sous Excel
[Langage C] Tests unitaires
[info] Swift: Pourquoi Apple a créé un nouveau langage de programmation
Test condition par rapport à une variable array
variable contenant une commande vb.net
C mettre dans une variable resultat DOS
meilleur langage outre que C++
Commande ou variable sur Notepad ++
passage de tableaux en variable dans les fonctions
Calcul langage C
Plus de sujets relatifs à Précision de variable en Langage C
 > Tous les forums > Forum Autres langages