Exercice langage C: Manipulation des données d'un Tableau

 

Ecrire un programme qui saisit  la dimension N d’un tableau de int  remplit le tableau par des  valeurs entrées au clavier et l’affiche.

Copier ensuite toutes les composantes strictement positives dans un deuxième tableau Tpos et  toutes les valeurs strictement négatives dans un tableau Tneg. Afficher Tpos et Tneg.

Ecrire la fonction suivante :

int TrierTableau(int *, int *, int *,int


 

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include  
#define MAX 50 
main() 
{ 
 /* Déclarations */ 
 /* Les tableaux et leurs dimensions */ 
  int T[MAX], TPOS[MAX], TNEG[MAX]; 
  int N,M, Npos,     NNEG; 
  int I; /* indice courant */ 
 /* Saisie de la dimension */ 
 do 
{ 
  printf("Dimension du tableau (max.%d) : ",MAX); 
  scanf("%d", &N ); 
}while(N>MAX) ; 
 /* Saisie des données */ 
SaisirTableau(T,N) ; 
 /* Affichage du tableau */ 
 AfficherTableau(T,N) ; 
/*Tasser les elements du tableau */ 
 M = TasserTableau(T,N) ; 
/* Trier le tableau */ 
 Npos = TrierTableau(T,TPOS,TNEG,M) ; 
/* Edition des resultats */ 
 printf(”Elements positifs : \n”) ; 
 AfficherTableau(TPOS,Npos) ;  
 printf(”Elements négatifs : \n”) ; 
 AfficherTableau(TNEG,N-Npos) ; 
} 
int TrierTableau(int *T, int *TPOS, int *TNEG, int N) 
{ 
 int npos=0, nneg=0; 
 int i ; 
 /* Transfert des données */
for (i=0; i<N; i++) 
       { 
 if (T[i]>0)  
{ 
                       TPOS[npos]=T[i]; 
                       npos++; 
                     } 
          if (T[i]<0)  
{ 
                       TNEG[nneg]=T[i]; 
                       nneg++; 
                     } 
       } 
 return npos ; 
}