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

  FORUM HardWare.fr
  Programmation
  C

  [Programmation C] Modulo - pb de comprehension du prog

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Programmation C] Modulo - pb de comprehension du prog

n°585886
neyro
Posté le 08-12-2003 à 19:20:59  profilanswer
 

Salut,
 
J'ai un petit prog que je dois commenter mais y'a des points que je ne comprends pas.
Le programme simule la fonction "cat" en Unix a la différence qu'en plus il affiche les numéros de ligne en début de ligne sous la forme 000 (on peut donc aller jusqu'à 999).
 
Voila la fonction avec laquelle j'ai du mal.
Elle reçoit un numéro de ligne (par exemple 1,2,3...) et renvoie le numéro sous la forme 001,002,003...  
 
 
char * conversion(int n)
   {
   //déclaration variables
 
   int u=0; //pour les unités
   int d=0; //pour les dizaines
   int c=0; //pour les centaines
   char U,D,C; //3 chaines de caractères
   char *res; //pointeur sur chaine
 
   //code
 
   //je comprends pas ça-je vois ce que ça fait mais j'arrive pas a l'expliquer
   u=n%10;    
   d=((n-u)%100)/10;
   C=((n-u-d)%1000)/100;
 
 
   //la non plus comprend pas- je crois que ça a rapport ave cle code ascii
   U='0'+u;
   D='0'+d;
   C='0'+c;
   //on alloue a res une taille de 4 caracteres
   res=(char *)malloc(4*sizeof(char));
   //initialisation
   res[0]='0';
   res[1]='0';
   res[2]='0';
   //on affecte a chacun des elements les valeurs de C,D,U et le dernier vaut '\0'(fin de ligne)  
   res[0]=C;
   res[1]=D;
   res[2]=U;
   res[3]='\0';
   return res; //retourne la valeur de res (par exemple 025\0)
   }
 
 
 
Quelqu'un pourrait il m'aider svp :??:


Message édité par neyro le 08-12-2003 à 19:21:18
mood
Publicité
Posté le 08-12-2003 à 19:20:59  profilanswer
 

n°585887
Taz
bisounours-codeur
Posté le 08-12-2003 à 19:23:44  profilanswer
 

essaie sprintf

n°585888
neyro
Posté le 08-12-2003 à 19:25:13  profilanswer
 

Mais non, le prog marche bien :)
C'est juste les commentaires pour la compréhension
Le but est de ne pas utiliser printf & co

n°585889
Taz
bisounours-codeur
Posté le 08-12-2003 à 19:29:39  profilanswer
 

ben tu oublies des coefficients multiplicatifs, c'est juste de l'algo
 
 
n %= 1000;
 
centainte <- n/100;
dizaine <- (n - centaine*100)/10
unité <- n - centaine*100 - dizaine*10

n°585891
Taz
bisounours-codeur
Posté le 08-12-2003 à 19:32:21  profilanswer
 

au fait :
- le cast du malloc est inutile, vérifie plutôt que malloc ne te renvoie pas NULL
- sizeof(char) ==1 par définition
 
 
tes initialisation n'en sont pas. ne les fait pas. tu as beaucoup de variables pour pas grand chose au final quand même.

n°585893
neyro
Posté le 08-12-2003 à 19:37:50  profilanswer
 

Merci :)
Comprends mieux pour le modulo
Pour le code, on nous l'a donné comme ça
C sur qu'il doit y avoir + simple
 

n°585894
Taz
bisounours-codeur
Posté le 08-12-2003 à 19:39:41  profilanswer
 

le modulo est pas encause, c'est juste savoir compter
 
n = c*100 + d*10 +u


Message édité par Taz le 08-12-2003 à 19:40:00
n°585895
neyro
Posté le 08-12-2003 à 19:40:46  profilanswer
 

:D

n°585899
neyro
Posté le 08-12-2003 à 19:49:27  profilanswer
 

Taz a écrit :

le modulo est pas encause, c'est juste savoir compter
 
n = c*100 + d*10 +u


 
C'est plus le coup d'utiliser les modulo comme ça qui me genait :)

n°585906
Taz
bisounours-codeur
Posté le 08-12-2003 à 19:56:55  profilanswer
 

bah non puisque ton erreur c'est d'avoir oublié des multiplications, à moins que tu n'es pas bien saisi ce qu'est le modulo

mood
Publicité
Posté le 08-12-2003 à 19:56:55  profilanswer
 

n°585912
nraynaud
lol
Posté le 08-12-2003 à 20:04:32  profilanswer
 

Taz a écrit :

n = c*100 + d*10 +u

Tiens, ça me fait penser qu'il doit y avoir des langages logiques où on peut exprimer ça directement (avec n connu et le langage se démerde pour trouver c, d et u).


---------------
trainoo.com, c'est fini
n°585917
neyro
Posté le 08-12-2003 à 20:09:05  profilanswer
 

Taz a écrit :

bah non puisque ton erreur c'est d'avoir oublié des multiplications, à moins que tu n'es pas bien saisi ce qu'est le modulo


 
Ben j'ai du mal avec ça
C'est bien le reste de la division non?

n°585920
Taz
bisounours-codeur
Posté le 08-12-2003 à 20:11:25  profilanswer
 

modulo des histoire de signe
division entière ici

n°585921
neyro
Posté le 08-12-2003 à 20:13:25  profilanswer
 

ok :jap:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  [Programmation C] Modulo - pb de comprehension du prog

 

Sujets relatifs
Creation d'un DSN a partir d'un prog javaUn programme en C# est-il aussi performant qu'un prog en C++ ?
Problème de compréhension d' une requête SQLProblème de requête SQL dans un prog. en VB
prog simple : creer un fichier txt commandé sous visual basic[QT] guide de programmation ?
[conseil a donner inside] Besoin de conseil de debut en prog!C dur la programmation?
programmation windows -> fenetre et threadQuel lang. de prog. pour...
Plus de sujets relatifs à : [Programmation C] Modulo - pb de comprehension du prog


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR