Exercice C

Fermé
Mélanie - 11 mars 2008 à 14:57
Mahmah Messages postés 496 Date d'inscription lundi 17 septembre 2007 Statut Membre Dernière intervention 22 juin 2010 - 12 mars 2008 à 10:00
Bonjour,

tout le monde , je suis inquiéte car j'ai un exercice pour demain que je n'arrive pas à résoudre. L'exercice est le suivant :

Faire un programme qui permet de saisir un nombre entier , de déterminer et d'afficher la somme de ses chiffres .

J'avais penser à utiliser le modulo.

Quelqun a une idée ?

2 réponses

Bonjour Mélanie,

J'ai commencé hier le C mais utilise getchar() dans une boucle for pour remplir un tableau char s[].
Ensuite s[i]-'0' te donne le chiffre que tu as donné dans getchar().
Tu n'as plus qu'à sommer les différents s[i]-'0'.
0
Merci mais j'ai pas tout bien compris , j'ai jamais utilisé ses fonctions la

quelqun a une solution a proposé ?
0
Melanie > Melanie
11 mars 2008 à 20:30
up
0
Mahmah Messages postés 496 Date d'inscription lundi 17 septembre 2007 Statut Membre Dernière intervention 22 juin 2010 125
11 mars 2008 à 20:56
Bonjour,

Pour la saisie cela peut se faire avec un scanf. Quelque chose du genre:
int monEntierLu;

if ( scanf ( "%d", &monEntierLu ) == 1 )
{
    ...
}

scanf prend une chaîne de formatage du même style que printf que tu connais peut-être mieux, puis les adresses des variables dans lesquelles il peut écrire. La valeur de retour est le nombre de variables écrites avec succès.

Pour faire la somme des chiffres, je ferais ça par divisions successives.
En pseudo langage:
entier somme = 0

Tant que monEntierLu > 9
    somme = somme + ( monEntierLu mod 10)   //  ("a modulo b" en C c'est "a % b")
    monEntierLu = monEntierLu / 10

// le dernier chiffre:
somme = somme + ( monEntierLu mod 10)   ("a modulo b" en C c'est "a % b")

voilou,
M.
0
merci mahmah
0
Mahmah Messages postés 496 Date d'inscription lundi 17 septembre 2007 Statut Membre Dernière intervention 22 juin 2010 125 > Melanie
12 mars 2008 à 10:00
Mais de rien.

Et en fait le dernier modulo 10 est inutile vu que le nombre est entre 1 et 9. J'ai copier-coller bêtement...
0