Additionner des valeur d'un tableau en une variable (en C)

Résolu/Fermé
lucario200298 Messages postés 56 Date d'inscription samedi 21 mai 2011 Statut Membre Dernière intervention 16 mai 2015 - 27 avril 2013 à 19:50
lucario200298 Messages postés 56 Date d'inscription samedi 21 mai 2011 Statut Membre Dernière intervention 16 mai 2015 - 29 avril 2013 à 18:42
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.
A voir également:

2 réponses

jeremux Messages postés 58 Date d'inscription samedi 23 octobre 2010 Statut Membre Dernière intervention 30 mai 2013 4
Modifié par jeremux le 27/04/2013 à 23:13
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.
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 840
28 avril 2013 à 00:09
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,
0
lucario200298 Messages postés 56 Date d'inscription samedi 21 mai 2011 Statut Membre Dernière intervention 16 mai 2015 1
28 avril 2013 à 12:42
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.
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 840
28 avril 2013 à 13:13
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,
0
jeremux Messages postés 58 Date d'inscription samedi 23 octobre 2010 Statut Membre Dernière intervention 30 mai 2013 4
28 avril 2013 à 13:16
1234 modulo 10 = 4...à toi de réfléchir pour la suite.
0
lucario200298 Messages postés 56 Date d'inscription samedi 21 mai 2011 Statut Membre Dernière intervention 16 mai 2015 1
29 avril 2013 à 18:42
Merci.
0