Somme des valeurs absolues des cases d’un tableau

, par Pierre

Sujet (contrôle de TP 2009)

Soit un tableau d’entiers relatifs initialisé à des valeurs de votre choix et dont la taille sera fixée par une constante symbolique N. Écrire un programme qui :

  1. affiche le contenu du tableau ;
  2. affiche la valeur absolue des élements du tableau ;
  3. calcule et affiche la somme des valeurs absolues des éléments du tableau.
    Le programme doit fonctionner correctement pour n’importe quelle initialisation du tableau.

Solution

  1. /* Declaration de fonctionnalites supplementaires */
  2. #include <stdlib.h> /* pour EXIT_SUCCESS */
  3. #include <stdio.h> /* pour printf() */
  4.  
  5. /* Declaration des constantes et types utilisateur */
  6. #define N 5
  7. /* Declaration des fonctions utilisateur */
  8.  
  9. /* Fonction principale */
  10. int main()
  11. {
  12. /* Declaration et initialisation des variables */
  13. int tab[N] = {1,-2,4,10,-6};
  14. int i; /* var de boucle */
  15. int somme = 0; /* 0 élément neutre de la somme */
  16.  
  17. /* 1) Affichage du tableau */
  18. printf("Affichage du tableau\n");
  19.  
  20. for (i = 0; i < N; i = i + 1) /* pour chaque case */
  21. {
  22. /* afficher le contenu de la case */
  23. printf("%d ", tab[i]);
  24. }
  25. printf("\n");
  26.  
  27. /* 2) Affichage du tableau en valeurs absolues */
  28. printf("Affichage du tableau en valeurs absolues\n");
  29.  
  30. for (i = 0; i < N; i = i + 1) /* pour chaque case */
  31. {
  32. if (tab[i] < 0)
  33. {/* |tab[i]| = -tab[i] */
  34. printf("%d ",-tab[i]);
  35. }
  36. else
  37. {
  38. printf("%d ",tab[i]);
  39. }
  40. }
  41. printf("\n");
  42.  
  43. /* 3) Calcul de la somme des valeurs absolues */
  44. for (i = 0; i < N; i = i + 1) /* pour chaque case */
  45. {
  46. /* ajouter la valeur absolue de la case */
  47. if (tab[i] < 0)
  48. {/* |tab[i]| = -tab[i] */
  49. somme = somme - tab[i];
  50. }
  51. else
  52. {
  53. somme = somme + tab[i];
  54. }
  55. }
  56. printf("Somme en valeur absolue : %d\n", somme);
  57.  
  58. /* Valeur fonction */
  59. return EXIT_SUCCESS;
  60. }
  61.  
  62. /* Definition des fonctions utilisateur */

Télécharger

Revenu et logement, Je livre ici quelques éléments de comparaison concernant mon niveau de vie, pour couper court à quelques idées reçues, et un condensé de nombreuses (...)
Revenu et travail d’un enseignant-chercheur, Cet article complète l'article Revenu et logement, en détaillant un peu le budget de mon ménage, mon parcours d'enseignant-chercheur en terme de (...)
Cybersyn (el systemo synco), Au café, mardi 5 avril 2011, j'ai bien vu que, mis à part Antoine Allombert, personne ne connaissait l'histoire de l'extraordinaire projet chilien (...) [jpg, jpg, png]