Additionner des valeur d'un tableau en une variable (en C) [Résolu/Fermé]

Signaler
Messages postés
57
Date d'inscription
samedi 21 mai 2011
Statut
Membre
Dernière intervention
16 mai 2015
-
Messages postés
57
Date d'inscription
samedi 21 mai 2011
Statut
Membre
Dernière intervention
16 mai 2015
-
Bonjour, j'essaye d'apprendre à programmer en C, et j'essaye de m'entrainer d'après ce que je connais, mais je n'arrive pas à stocker dans une variable l'addition des valeurs comprise dans un tableau. J'ai un nombre quatre chiffres (ex : 1234) et je veux additionner chaque chiffre de nombre pour obtenir un autre nombre (1 + 2 + 3 + 4 = 10)

Je vais vous montrer ce que j'ai essayé de faire :

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
int tableau[10];
int somme = 0;
printf("Entrez un nombre a quatre chiffre\n");
scanf("%d", tableau);
somme = tableau[0] + tableau[1] + tableau[2] + tableau[3];
printf("%d\n", somme);
system("pause");
}

Résultat quand j'entre 1234, le programme ne me renvoi pas 10 mais 1717988150. J'ai essayer plusieurs autres moyens en vain.
Je voudrais donc que si je rentre 1234, le programme renvoi 10 ou par exemple 2345, il me renvoi 14,

Merci de proposer vos solutions ou vos piste s'il vous plait.

2 réponses

Messages postés
58
Date d'inscription
samedi 23 octobre 2010
Statut
Membre
Dernière intervention
30 mai 2013
4
Bonsoir,

Il faut réfléchir ! C'est la meilleure façon d'apprendre :) Il est stocké où ton nombre à 4 chiffres ?

Regarde bien ce programme, si l'utilisateur entre le nombre 26 il affichera 26.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
int toto = 0;
printf("Entrez un nombre: \n");
scanf("%d", &toto);
printf("%d\n", toto);
system("pause");
}

Un string dans l'array.
Messages postés
11066
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1 703
Bonjour,

Vu ton programme, je pense que tu as mal compris le fonctionnement du tableau.
scanf("%d", tableau); => signifie scanf("%d",&tableau[0]);
Autrement dit, si tu tapes 1234, tableau[0] vaudra 1234. Il n'y aura pas de "découpage". Ou alors, il faut le programmer.

Cdlt,
Messages postés
57
Date d'inscription
samedi 21 mai 2011
Statut
Membre
Dernière intervention
16 mai 2015
1
Justement comment faire pour découper un nombre ? J'ai essayé et je n'ai pu qu'afficher le nombre découpé à l'écran mais jamais faire la somme de ses nombres.
Messages postés
11066
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1 703
Deux façons :
1/ Plutôt que récupérer un tableau d'entier, tu récupères un tableau de caractères. Ainsi tu auras tableau[0]='1', tableau[1]='2', tableau[2]='3', tableau[3]='4'.
La somme des nombres donnera : somme = (tableau[0]-'0') + (tableau[1]-'0') + (tableau[2]-'0')+(tableau[3]-'0'); C'est facile à généraliser dans une boucle for.

2/Arithmétique avec les modulos et divisions
1234%10 = 4
1234/10=123, 123%10=3
123/10=12, 12%10=2
12/10=1, 1%10=1
Facile à implémenter avec une boucle for également.

Cdlt,
Messages postés
58
Date d'inscription
samedi 23 octobre 2010
Statut
Membre
Dernière intervention
30 mai 2013
4
1234 modulo 10 = 4...à toi de réfléchir pour la suite.
Messages postés
57
Date d'inscription
samedi 21 mai 2011
Statut
Membre
Dernière intervention
16 mai 2015
1
Merci.