IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2019
    Messages : 4
    Par défaut j'aimerai bien savoir si on doit ecrit 42 pour l'afficher ? je parle sur la derniere function int main (void)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    #include <unistd.h>
     
    int	ft_putchar(char c)
    {
        write(1, &c, 1);
    }
     
    void	ft_putnbr(int nb)
    {
    char	c;
    if (nb < 0)
    {
    nb = -nb;
    ft_putchar('-');
    }
    if (nb < 10)
    ft_putchar(nb + 48);
    else
    {
    ft_putnbr(nb / 10);
    ft_putnbr(nb % 10);
    }
    }
     
    int main(void)
    {
        ft_putnbr(42);
        return (0);
    }

  2. #2
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 835
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Pour répondre à ta question dans le titre, non. tu n'es pas obligé de mettre "42". Tu peux très bien écrire ft_putnbr(54) si c'est le nombre "54" que tu veux afficher. Bien évidemment il te faut tout de même appeler la fonction si tu veux l'utiliser pour afficher un nombre car elle ne s'appellera pas toute seule.

    Et pour des raisons de lisibilité et d'évolutivité, moi j'aurais remplacé ft_putchar(nb + 48) par ft_putchar(nb + '0').

    Sinon j'ai beaucoup aimé cette façon d'afficher un nombre. L'afficher récursivement digit par digit. J'espère que tu l'apprécies aussi car il est très instructif. Il y a juste le test de négativité initial qui est dommage car il n'est nécessaire qu'une seule fois mais est effectué à chaque sous-appel récursif ce qui ralentit inutilement le code. Il serait peut-être utile d'écrire alors deux fonctions, la première qui s'occupe des tests préalables et la seconde qui s'occupe uniquement des affichages récursifs.

    Comme par exemple
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    void ft_putnbr(int nb) {
    	void putnbr_r(int nb) {
    		if (nb < 10) {
    			ft_putchar(nb + '0');
    			return;
    		}
    		putnbr_r(nb / 10);
    		putnbr_r(nb % 10);
    	}
    	if (nb < 0) {
    		nb = -nb;
    		ft_putchar('-');
    	}
    	putnbr_r(nb);
    }
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2019
    Messages : 4
    Par défaut
    no they ask to display " 42 " , so when i wrote it at the last function , the code display in the end ' Z '
    and we must create it with this function " void ft_putnbr(int nb); "

  4. #4
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 835
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par mooka007 Voir le message
    no they ask to display " 42 " , so when i wrote it at the last function , the code display in the end ' Z '
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    void ft_putnbr(int nb) {
    	void putnbr_r(int nb) {
    		if (nb < 10) {
    			ft_putchar(nb + '0');
    			return;
    		}
    		putnbr_r(nb / 10);
    		putnbr_r(nb % 10);
    	}
    	if (nb < 0) {
    		nb = -nb;
    		ft_putchar('-');
    	}
    	putnbr_r(nb);
    	ft_putchar('\n');
    }

    Citation Envoyé par mooka007 Voir le message
    and we must create it with this function " void ft_putnbr(int nb); "
    The function "void putnbr_r(int nb)" is inside function "void ft_putnbr(int nb)". So that respect's rules.

    Or if you dont want void putnbr_r(int nb) no problem. Add ft_putchar('\n') in your first code after call ft_putnbr(42) and your code will work correctly.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  5. #5
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2019
    Messages : 4
    Par défaut
    yes now i get it so putnbr has many options as u said
    thank u so much for ur time (y) gg

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 26/06/2009, 15h30
  2. Réponses: 1
    Dernier message: 04/04/2009, 06h39
  3. J'aimerai bien me former en maintenance informatique
    Par davidguy1984 dans le forum Composants
    Réponses: 2
    Dernier message: 03/03/2008, 14h01
  4. Réponses: 2
    Dernier message: 28/05/2007, 13h15
  5. [Forum] Deux choses que j'aimerais bien faire
    Par Jean-Marc.Bourguet dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 29
    Dernier message: 16/05/2006, 14h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo