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

C Discussion :

Code ascii compréhension


Sujet :

C

  1. #1
    Membre à l'essai
    Homme Profil pro
    étudiant
    Inscrit en
    Juillet 2019
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2019
    Messages : 23
    Points : 19
    Points
    19
    Par défaut Code ascii compréhension
    Bonsoir

    Je suis entrain de faire un exo avec des contrainte imposé
    voici la consigne

    Nom : Capture d’écran 2022-03-02 à 18.31.25.png
Affichages : 934
Taille : 395,6 Ko

    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
    30
    31
    32
    33
    34
    35
     
    #include <unistd.h>
     
    void    ft_putchar(char c)
    {
        write(1, &c, 1);
    }
     
    void    ft_print_comb(void)
    {
        int a;
        int b;
        int c;
     
        a = 0; 
        while (a < 10)
        {
            b = a + 1;
            while (b < 10)
            {
                c = b + 1;
                while(c < 10)
                {
                    ft_putchar(a);
                    ft_putchar(b);
                    ft_putchar(c);
                    ft_putchar(',');
                    ft_putchar(' ');
                    c++;
                }
                b++;
            }
            a++;
        }
    }
    Avec ce code le programme m'affiche les virgules ansi que les espace mais en rajoutant ('0' + a) ('0' + b) etc ... A chaque putchar le résultat affiché et bon mais il me semble que l'on demande '0' + a, ce qui reviens au même qu'écrire a directement

    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
     
    void    ft_print_comb(void)
    {
        int a;
        int b;
        int c;
     
        a = 0; 
        while (a < 10)
        {
            b = a + 1;
            while (b < 10)
            {
                c = b + 1;
                while(c < 10)
                {
                    ft_putchar('0' + a);
                    ft_putchar('0' + b);
                    ft_putchar('0' + c);
                    ft_putchar(',');
                    ft_putchar(' ');
                    c++;
                }
                b++;
            }
            a++;
        }
    }
    J'aimerais s'il vous plait qu'on m'explique pourquoi ca diffère entre les 2 résultat

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut
    Citation Envoyé par rosco-rs Voir le message
    ce qui reviens au même qu'écrire a directement
    Non. putchar c'est pour afficher un char, et a est pas un char. Donc oui il faut utiliser '0' + a et compter sur la table ascii où [0-9] sont contigües et dans cet ordre.

    En dehors de ça, quelle est la question ? Sachant que nous ne ferons pas tes devoirs.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  3. #3
    Membre à l'essai
    Homme Profil pro
    étudiant
    Inscrit en
    Juillet 2019
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2019
    Messages : 23
    Points : 19
    Points
    19
    Par défaut
    A aucun moment j'ai demandé a ce qu'on fasse mes devoirs, au contraire j'ai produit quelque choses et je voulais juste des précisions sur le faite que dans le premier résultat on avait une première sortie qui n'affiché pas les nombre et que sur la seconde si

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut
    https://www.ascii-code.com/
    Les caractères 0 à 9 n'affichent rien.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  5. #5
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 690
    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 690
    Points : 30 985
    Points
    30 985
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par rosco-rs Voir le message
    J'aimerais s'il vous plait qu'on m'explique pourquoi ca diffère entre les 2 résultat
    Parce que le caractère '0' ce n'est pas la valeur 0. Ou (dit dans l'autre sens) afficher 0 ce n'est pas afficher '0'. Et pareil avec toutes les autres valeurs de 1 à 9.
    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]

  6. #6
    Membre à l'essai
    Homme Profil pro
    étudiant
    Inscrit en
    Juillet 2019
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2019
    Messages : 23
    Points : 19
    Points
    19
    Par défaut
    Merci c'est plus clair maintenant

  7. #7
    Expert confirmé

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1 332
    Points : 4 153
    Points
    4 153
    Par défaut Monsieur Propre
    Bonjour,

    Indépendamment du problème d'affichage, il faudrait revoir les fins de boucles. Même si les tests évitent un problème ce n'est pas propre. La première boucle ne peut aller que jusqu'à 7 (une seule solution 789), la seconde jusqu'à 8.

    Par ailleurs l'usage de for() semble plus approprié :
    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
       for(int a = 0; a <=7; a++) 
          for(int b = a+1; b <= 8; b++)
             for(int c = b+1; c <= 9; c++) {...
    Salutations
    Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better. (Samuel Beckett)

  8. #8
    Membre expérimenté
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juillet 2020
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Juillet 2020
    Messages : 352
    Points : 1 376
    Points
    1 376
    Par défaut
    Sinon il y a une autre approche, celle de la génération de la combinaison suivante par un algo loopless.
    Et si on utilise ça, qu'on le déroule, qu'on remplace les valeurs connues et constantes, et qu'on essaye de pondre un code quick and dirty à la 42 :
    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
    #include <stdio.h>
     
    int main(void)
    {
        char s[]="012";
        while (1) {
            puts(s);
            if (s[2]=='9') {
                if (s[1]=='8') {
                    if (s[0]=='7') {
                        break;
                    } else {
                        s[0] += 1;
                        s[1] = s[0] + 1;
                        s[2] = s[1] + 1;
                    }
                } else {
                    s[1] += 1;
                    s[2] = s[1] + 1;
                }
            } else {
                s[2] += 1;
            }
        }
        return 0;
    }

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

Discussions similaires

  1. Code ASCII du symbole Euro
    Par FW-S dans le forum Delphi
    Réponses: 9
    Dernier message: 03/04/2007, 01h27
  2. [Hardware portable] Comment entrer un code Ascii?
    Par l.sage dans le forum Ordinateurs
    Réponses: 13
    Dernier message: 11/08/2005, 13h04
  3. fonction redonnant le code ascii d'un entier ???
    Par abignon dans le forum MFC
    Réponses: 4
    Dernier message: 29/01/2004, 12h32
  4. [mx2004]Convertir un code ASCII en une lettre
    Par caramel dans le forum Flash
    Réponses: 3
    Dernier message: 28/01/2004, 16h26
  5. [TP]Code ASCII.
    Par franck H dans le forum Turbo Pascal
    Réponses: 12
    Dernier message: 18/01/2004, 19h28

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