Aide pour un programme C

Fermé
abdelmounaime Messages postés 9 Date d'inscription vendredi 22 octobre 2010 Statut Membre Dernière intervention 13 décembre 2015 - 13 déc. 2015 à 02:31
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 13 déc. 2015 à 22:44
Bonjour tout le monde,

je suis debutant en programmation C et je veux améliorer ce programme en demandant à l'utilisateur d'entrer un nombre entier N et par la suite le programme fait la somme de ses chiffres et si le résultat de cette somme est supérieur à un chiffre on refait la somme de ces chiffres.

Exemple:

N= 12345 -----> S= 1+2+3+4+5 ---------> S= 15 ------------> S=6

#include <stdio.h>
main()
{
/* Déclarations */
int T[50]; /* tableau donné */
int N; /* dimension */
int I; /* indice courant */
long SOM; /* somme des éléments - type long à cause */
/* de la grandeur prévisible du résultat. */
/* Saisie des données */
printf("Dimension du tableau (max.50) : ");
scanf("%d", &N );
for (I=0; I<N; I++)
{
printf("Elément %d : ", I);
scanf("%d", &T[I]);
}
/* Affichage du tableau */
printf("Tableau donné :\n");
for (I=0; I<N; I++)
printf("%d ", T[I]);
printf("\n");
/* Calcul de la somme */
for (SOM=0, I=0; I<N; I++)
SOM += T[I];
/* Edition du résultat */
printf("Somme de éléments : %ld\n", SOM);
return 0;
}

Merci d'avance et bonne journée

2 réponses

Nxl Messages postés 1038 Date d'inscription mardi 2 février 2010 Statut Membre Dernière intervention 5 janvier 2017 133
13 déc. 2015 à 14:24
Salut !
Tu fais de la voyance numéro-logique ?^^
Sinon pour faire ce genre de programme je te conseil plus d'utiliser un module et une division euclidienne.
Par exemple pour 42 :
42 mod 10 = 2 -> Tu récupères le 2
42 div 10 = 4 -> Tu récupères le chiffre des dizaines (4)
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
13 déc. 2015 à 17:48
Du coup, ça sera moins efficace...
0
abdelmounaime Messages postés 9 Date d'inscription vendredi 22 octobre 2010 Statut Membre Dernière intervention 13 décembre 2015 1
13 déc. 2015 à 18:03
merci bcp antoine je vais essayer ça ;)
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835 > abdelmounaime Messages postés 9 Date d'inscription vendredi 22 octobre 2010 Statut Membre Dernière intervention 13 décembre 2015
13 déc. 2015 à 22:44
Ton programme sera moins performant ;-)
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
13 déc. 2015 à 17:52
Bonjour,

main()
Le bon prototype est : int main(void)

Note : par convention, on utilise plutôt des lettres minuscules pour le nom des variables.

Pourquoi passer par un tableau ?
Tu as besoin de stocker le résultat ?
Sinon tu peux tout simplement faire une addition au fur et à mesure que tu rentres les variables.

Dans ton énoncé, tu dis :
et si le résultat de cette somme est supérieur à un chiffre on refait la somme de ces chiffres.
Je ne vois pas cette partie dnas ton code...
0