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 :

question langage C


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 67
    Par défaut question langage C
    bonjour,
    en C, il est possible de saisir une chaine de caractere(chaque lettre est stockée), mais est-il possible de saisir une chaine de chiffres puis faire la multiplication de chaque chiffre ?
    si oui, quel code faites-vous ?
    merci.

  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
    Citation Envoyé par space_56 Voir le message
    bonjour,
    en C, il est possible de saisir une chaine de caractere(chaque lettre est stockée), mais est-il possible de saisir une chaine de chiffres puis faire la multiplication de chaque chiffre ?
    si oui, quel code faites-vous ?
    merci.
    Tu veux dire que tu saisis "12345" et que tu fais "1 * 2 * 3 * 4 * 5" ?
    Ben faut 1) faire saisir la chaîne, 2) analyser la chaîne pour en extraire les chiffres (boucle) et 3) faire la multiplication

    Ne pas oublier de faire "- '0'" pour convertir le caractère ('1' = 49 ascii) en chiffre ('1' - '0' = 49 - 48 = 1)
    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 confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 67
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Tu veux dire que tu saisis "12345" et que tu fais "1 * 2 * 3 * 4 * 5" ?
    chiffre ('1' - '0' = 49 - 48 = 1)
    oui, c'est ça.

    pour saisir, on utilise scanf et un tableau ?
    puis est-ce qu'on peut multiplier chaque element du tableau ?

  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 space_56 Voir le message
    oui, c'est ça.

    pour saisir, on utilise scanf et un tableau ?
    puis est-ce qu'on peut additionner chaque element du tableau ?
    Pour saisir tu peux utiliser scanf() ou fgets(). La chaîne étant déjà un tableau, pas la peine d'utiliser un autre tableau (te suffit de balayer chaque caractère de la chaîne saisie). Quand à additionner (je croyais que t'avais parlé de multiplier ???) chaque élément (chaque caractère) cela ne pose aucun problème puisqu'un caractère n'est qu'un nombre (un code ascii).
    Seul danger => le caractère '8' (par exemple) ne vaut pas 8 mais 56. Pour passer de '8' à 8, faut lui enlever '0' (48) parce que les chiffres de 0 à 9 se suivent dans l'ordre ascii => 56 - 48 = 8
    Tu peux en plus filtrer par les fonctions is...() telle que "isnum()" pour ne traiter que les caractères représentants des chiffres...
    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 éprouvé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 299
    Par défaut
    sinon, sans passer par les caractères ASCII il y a les fonction strtod(), strtol() etc...
    Je préconise fgets() + ces fonctions.

  6. #6
    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 salseropom Voir le message
    sinon, sans passer par les caractères ASCII il y a les fonction strtod(), strtol() etc...
    Comme le nom l'indique, strtod() et consoeurs sont faites pour traiter des chaînes c.a.d. des tableaux terminés par '\0' (sous-entendu un tableau = un nombre) alors que là, il faut traiter des caractères uns par uns (sous-entendu un caractère = un chiffre) => ces fonctions sont inutiles dans ce cas précis !!!

    Sinon effectivement pour la saisie fgets() est mieux que scanf() car il peut contrôler la saisie...
    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]

Discussions similaires

  1. questions langage C
    Par space_56 dans le forum Autres éditeurs
    Réponses: 11
    Dernier message: 20/12/2007, 00h12
  2. question langage C
    Par claire_cartier dans le forum C
    Réponses: 7
    Dernier message: 05/11/2007, 11h56
  3. questions langage C
    Par akrlot dans le forum Débuter
    Réponses: 31
    Dernier message: 25/08/2007, 17h24
  4. [QUESTION] Langages à éviter ?
    Par Shadowritter dans le forum Langages de programmation
    Réponses: 28
    Dernier message: 12/01/2005, 10h34
  5. [langage] pb de question reponse
    Par And_the_problem_is dans le forum Langage
    Réponses: 2
    Dernier message: 29/11/2002, 11h59

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