Previous Next Up Index Contents

Exercice 6.8

#include <stdio.h>
main()
{
 int  X;       /* Le chiffre courant        */
 int  N=0;     /* Le compteur des décimales */
 long VALD=1;  /* Valeur de la position décimale courante */
 long NOMB=0;  /* Le nombre résultat                      */
 do
    {
      printf("Entrez le %d%s chiffre : ", (N+1), (N)?"e":"er");
     scanf("%d", &X);

     if (X<0||X>9)
        printf("\a");
     else if (X)
        {
         NOMB += VALD*X;
         N++;
         VALD *= 10;
        }
     else
        printf("La valeur du nombre renversé est %ld\n", NOMB);
    }
 while (X);
  return 0;
}

Remarque :

En remplaçant la ligne

NOMB += VALD*X;

par

NOMB += pow(10, N)*X;

on n'a plus besoin de la variable VALD. Il faut cependant inclure les fonctions de la bibliothèque <math>. D'autre part, le calcul de 10N serait alors répété à chaque exécution de la boucle.

Finalement, cette variante est plus lente et plus volumineuse que la première.


Previous Next Up Index Contents

Feedback - Copyright © 1993,1996,1997 F.Faber