Manipuler des tableaux

Voici un tout petit code source qui permet de manipuler des tableaux en C.
Le code est simplissime, cela permet d'avoir une mini bibliothèque/aide mémoire pas loin.
Un bon exercice consisterait à reprendre ce code et y ajouter des nouveaux tris...
tableaux.h :
#ifndef TABLEAUX_H #define TABLEAUX_H #define TAILLE 10 void afficheTab(long[], int); long sommeTab(long[] , int); double moyenneTab(long[], int); void copieTab(long[], long[], int); void clearMaxTab(long[], int taille, long valMax); void ordonnerTab(long[], int); void swap(long *, long *); #endif
tableaux.c
#include <stdio.h> #include "tableaux.h" int main(){ long tab[TAILLE]; long x = 0.0; int i; for(i=0; i<10 ; i++) tab[i]=x++; long newtab[TAILLE]; copieTab(tab, newtab, TAILLE); /*afficheTab(newtab, TAILLE);*/ clearMaxTab(tab, TAILLE, 2); /*afficheTab(tab, TAILLE);*/ long newtab2[TAILLE]; for(i=0; i<TAILLE; i++){ } ordonnerTab(newtab2, TAILLE); afficheTab(newtab2, TAILLE); return 0; } /* * Affiche le contenu d'un tableau sous forme décimale */ void afficheTab(long tab[], int taille){ int i; for(i=0; i<taille; i++) printf("tab[geshifilter-questionmarkphp]d] = %ld\r\n",i,tab[i]); } /* * Fait la somme de tous les éléments d'un tableau */ long sommeTab(long tab[], int taille){ long somme=0; int i=0; for(i=0 ; i<taille ; i++) somme+= tab[i]; return somme; } /* * Fait la moyenne algébrique de tous les éléments d'un tableau */ double moyenneTab(long tab[], int taille){ double somme = (double)sommeTab(tab, taille); return somme/(double)taille; } /* * Copie le contenu de tab1 dans tab2 * tab2 et tab1 doivent être de taille inférieure à taille1 donnée en paramètre */ void copieTab(long tab1[], long tab2[], int taille1){ int i; for(i=0; i<taille1; i++) tab2[i]=tab1[i]; } /* * Efface tous les éléments du tableau dont la valeur est <= valMax passée en paramètre */ void clearMaxTab(long tab[], int taille, long valMax){ int i; for(i=0; i<taille; i++) if(tab[i]>valMax) tab[i]=0; } /* * Range les éléments d'un tableau par ordre croissant */ void ordonnerTab(long tab[], int taille){ int j=0; int i; while(j<taille){ for(i=0; i<taille; i++) if ( tab[i] < tab[i+1] ) swap( (tab+i) , (tab+(i+1)) ); j++; } } /* * Echange deux éleménts */ void swap(long *ptr1, long *ptr2){ long temp; temp = *ptr1; *ptr1 = *ptr2; *ptr2 = temp; }
[/geshifilter-questionmarkphp]