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 averti
    Homme Profil pro
    étudiant
    Inscrit en
    Juillet 2019
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    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
    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 : 1185
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 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 147
    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 averti
    Homme Profil pro
    étudiant
    Inscrit en
    Juillet 2019
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    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
    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 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 147
    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
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 832
    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 832
    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 averti
    Homme Profil pro
    étudiant
    Inscrit en
    Juillet 2019
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    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
    Par défaut
    Merci c'est plus clair maintenant

  7. #7
    Membre Expert

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 624
    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 624
    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

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

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Juillet 2020
    Messages : 352
    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