Aide pour un programme C

abdelmounaime Messages postés 13 Statut Membre -  
fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   -
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

  1. Nxl Messages postés 1257 Statut Membre 133
     
    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
    1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      Du coup, ça sera moins efficace...
      0
    2. abdelmounaime Messages postés 13 Statut Membre 1
       
      merci bcp antoine je vais essayer ça ;)
      0
      1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847 > abdelmounaime Messages postés 13 Statut Membre
         
        Ton programme sera moins performant ;-)
        0
  2. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    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