> 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
869 €Smartphone 6.1 pouces Apple iPhone 12 128 Go 5G à 869 €
Valable jusqu'au 18 Avril

Amazon fait une belle promotion sur le smartphone 6.1 pouces Apple iPhone 12 128 Go qui passe à 869 € livré gratuitement au lieu de 959 €. Le tout dernier né d'Apple est compatible 5G, possède un double appareil photo sophistiqué avec ultra grand-angle et grand-angle 12 Mpx ; mode Nuit, Deep Fusion, Smart HDR 3 et enregistrement vidéo 4K HDR en Dolby Vision, une caméra avant TrueDepth 12 Mpx avec mode Nuit, enregistrement vidéo 4K HDR en Dolby Vision et est étanche IP68.


> Voir l'offre
58,99 €SSD WD Blue SN550 500 Go (NMVe M.2, 2400 Mo/s) à 58,99 €
Valable jusqu'au 20 Avril

Amazon fait une promotion sur le SSD WD Blue SN550 500 Go (NMVe M.2) qui passe à 58,99 € livré alors qu'on le trouve ailleurs à partir de 75 €. Ce SSD utilise une interface M.2 NVMe PCIe Gen3 x 4 pour une connexion simple et des performances exceptionnelles : jusqu’à 2 400 Mo/s en lecture séquentielle et jusqu’à 1 950 Mo/s en écriture séquentielle. Le SSD est doté de la technologie 3D TLC NAND haute densité offrant une endurance d’écriture durable et assorti d’une garantie de cinq ans. 


> Voir l'offre
197,24 €Tablette 10.4 pouces Galaxy Tab A7 2020 (8 coeurs, 32 Go, Wifi, WUXGA+, RAM 3 Go) à 197,24 € livrée
Valable jusqu'au 17 Avril

Amazon Allemagne fait une promotion sur la tablette 10.4 pouces Samsung Galaxy Tab A7 2020 qui passe à 191,59 € (avec la TVA ajustée). Comptez 5,65 € pour la livraison en France soit un total de 197,24 € livrée. On la trouve ailleurs à plus de 230 €. Cette tablette possède un écran 10.4 pouces WUXGA+ (2000x1200 pixels), un processeur octa-core 2 GHz, 3 Go de RAM, un espace de stockage de 32 Go extensible par MicroSD, le WiFi, le bluetooth et tourne sous Android 10.

La tablette pourra être mise en français dès le premier démarrage et vous bénéficiez d'une garantie européenne de 2 ans. Vous pouvez utiliser votre compte Amazon France sur Amazon Allemagne et il n'y a pas de douane.


> 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