Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2913 connectés 

 


Dernière réponse
Sujet : [C] programme en ligne de commande
benou cherche pas, y a une super méthode pour ca :  
 
pour fair un arrondi de x avec la méthode floor, y a qu'à faire ca :
floor(x*100 + 0.5) / 100  
 
et ca fait l'arrondit ! (merci à mon prof d'algo de 1ere année d'info :))

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
benou cherche pas, y a une super méthode pour ca :  
 
pour fair un arrondi de x avec la méthode floor, y a qu'à faire ca :
floor(x*100 + 0.5) / 100  
 
et ca fait l'arrondit ! (merci à mon prof d'algo de 1ere année d'info :))
com21

youdontcare a écrit a écrit :

pour l'arrondi, tu peux te servir de floor (plancher) et ceil (plafond).
 
floor(4.5f) renvoie 4
 
ceil(4.5f) renvoie 5
 
donc si tu veux les arrondis supérieurs / inférieurs, il suffit de multiplier ton nombre par 100, le passer par floor ou ceil, puis le rediviser par 100.  




 
il faut que les arrondi soit automatique....
4.123 donne 4.12
4.126 donne 4.13  
 
je vais cherche une fonction qui puisse faire ça...

petoulachi oui sinon pour la ligne de commande tu fais
gcc -Wall euro.c -o euro  et voila
 
Et puis fais un perror("Nbre de param erroné\n" )  c plus propre
youdontcare pour l'arrondi, tu peux te servir de floor (plancher) et ceil (plafond).
 
floor(4.5f) renvoie 4
 
ceil(4.5f) renvoie 5
 
donc si tu veux les arrondis supérieurs / inférieurs, il suffit de multiplier ton nombre par 100, le passer par floor ou ceil, puis le rediviser par 100.
com21 merci pour vos reponses
je suis tres etourdi  
et ça m'emmerde de galerer pour un int oublier.....
 
bon je vais faire cette fonction arrondi ça sera chiant a faire mais pas impossible :)
Kristoph Pour le warning, il faut que tu declare main comme retournant int
 
int main(int argc, char *argv[])
 
pour l'autre erreur de gcc, c'est ta ligne de command qui est incorrecte :
 
gcc -c -Wall -o euro -c euro.c
 
tu a oublie le -o avant euro
 
Sinon, tout le reste est bon mais pour les arrondis il va falloir galèrer un peu plus avec les fonction de math.h je pense. Si tu a de la chance, il y a une fonction d'arrondi qui fait ca automatiquement comme il faut :)
deathsharp la valeur par defaut de main c int si tu en met pas ;)  
ca fait un warning: c vrai que c quand meme mieux de mettre int
benou ben ouais : tu fais un return 0 sans déclarer de valeur de retour pour ta fonction main
sixties int main(int argc, char *argv[])
Gounok La variable argc renvoie le nombre de paramètre de la ligne de commande, commande inclue. En l'occurence, il faut mettre 2 arguments, la commande et le montant : si y en a plus ou moins de 2, c'est que l'utilisateur s'en est mal servi d'où le code d'erreur.
Gousy Je comprends pas a koi sert ta variable argc??
J ai essaye ton code source moi j ai aucune erreur
com21 le but est de programmer une calculette Euro en utilisant les fonctions de ligne de commande :
Ex :
>./Euro 1
>6.56
 
voici le code source :
 
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
 
 
main(int argc, char *argv[])
{    
  double a,b;
  if (argc != 2)
    {
     printf(" Nombre de parametres errone\n" );
     exit(1);
    }
 
  a = atof(argv[1]);
  b = (a * 6.5597);
  printf("cela fait %f francs\n",b);
 
  return 0;
 
}
 
 
et a la compilation j'ai ceci
 
$ gcc -c -Wall euro euro.c
gcc: euro: Aucun fichier ou r?pertoire de ce type
euro.c:7: warning: return type defaults to `int'
 
???  j'arrive pas a comprendre ce que je dois changer
 
par ailleur on doit afficher que deux chiffres apres la virgule  
j'ai juste a mettre %.2f dans mon printf
mais je dois aussi gerer les arrondi supérieur et inférieur mais comment ?
 
 
merci de votre aide :)

 

[edtdd]--Message édité par com21--[/edtdd]


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)