Exercices langage C fonctions tableaux à une dimension

Exercice 1


La fonction LIRE_TAB à trois paramètres TAB, N et NMAX lit la dimension N et les composantes d'un tableau TAB du type int. La dimension N doit être inférieure à NMAX. Implémenter la fonction LIRE_TAB en choisissant bien le type des paramètres.

Exemple:

Pour un appel par

     LIRE_TAB(T, &N, 10);

la fonction se comportera comme suit:

  Dimension du tableau (max.10): 11
Dimension du tableau (max.10): 4
Elément[0] : 43
Elément[1] : 55
Elément[2] : 67
Elément[3] : 79

Exercice 2


Ecrire la fonction ECRIRE_TAB à deux paramètres TAB et N qui affiche N composantes du tableau TAB du type int.

Exemple:

Le tableau T lu dans l'exemple ci-dessus sera affiché par l'appel :

     ECRIRE_TAB(T, N);

et sera présenté comme suit:

      43 55 67 79 

Exercice 3


Ecrire la fonction SOMME_TAB qui calcule la somme des N éléments d'un tableau TAB du type int. N et TAB sont fournis comme paramètres; la somme est retournée comme résultat du type long.


Exercice 4


A l'aide des fonctions des exercices précédents, écrire un programme qui lit un tableau A d'une dimension inférieure ou égale à 100 et affiche le tableau et la somme des éléments du tableau.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
void LIRE_TAB (int *TAB, int *N, int NMAX)
{
 /* Variables locales */
 int I; 
 /* Saisie de la dimension du tableau */
 do
    {
     printf("Dimension du tableau (max.%d) : ", NMAX);
     scanf("%d", N); /* Attention: écrire N et non &N ! */
    }
 while (*N<0 || *N>NMAX);
 /* Saisie des composantes du tableau */
 for (I=0; I<*N; I++)
    {
     printf("Elément[%d] : ", I);
     scanf("%d", TAB+I);
    }
}

 




1
2
3
4
5
6
7
8
9
10
11
void ECRIRE_TAB (int *TAB, int N)
{
 /* Affichage des composantes du tableau */
 while(N)
    {
     printf("%d ", *TAB);
     TAB++;
     N--;
    }
 printf("\n");
}

 


1
2
3
4
5
6
7
8
9
10
11
12
13
long SOMME_TAB(int *TAB, int N)
{
 /* Variables locales */
 long SOMME = 0;
 /* Calcul de la somme */
 while(N)
    {
     SOMME += *TAB;
     TAB++;
     N--;
    }
 return SOMME;
}

 




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <stdio.h>

main()
{
 /* Prototypes des fonctions appelées */
 void LIRE_TAB (int *TAB, int *N, int NMAX);
 void ECRIRE_TAB (int *TAB, int N);
 long SOMME_TAB(int *TAB, int N);
 /* Variables locales */
 int T[100]; /* Tableau d'entiers */
 int DIM;    /* Dimension du tableau */ 
 /* Traitements */
 LIRE_TAB (T, &DIM, 100);
  printf("Tableau donné : \n");
 ECRIRE_TAB (T, DIM);
  printf("Somme des éléments du tableau : %ld\n",
                                          SOMME_TAB(T, DIM) );
 return 0;
}
void LIRE_TAB (int *TAB, int *N, int NMAX) 
{
 . . .
}
void ECRIRE_TAB (int *TAB, int N)
{
 . . .
}
long SOMME_TAB(int *TAB, int N)
{
 . . .
}