#include <stdio.h> #include <stdlib.h> #include <conio.h> //pour getch #include <ctype.h> //pour toupper #define DIM 100 typedef float tableau[DIM]; void affiche(tableau tab,int a) { int i; printf("\nle tableau contient %d valeurs",a); printf("\nvaleurs du tableau : "); for (i=0;i<a;i++) printf ("\n\t%dième valeur : %f",i+1,tab[i]); } void saisie(tableau tab,int*nb) //nb est modifié par la fonction { int i; printf("\ncombien désirez vous de valeurs (<=%d) ? ",DIM); scanf("%d",nb); for (i=0;i<*nb;i++) { printf("position %d : donnez la valeur : ",i); scanf("%f",tab+i); //ou &(tab[i]) } } float moyenne(tableau tab,int a) //retourne un flottant { int i; float s=0,m; for (i=0;i<a;i++) s+=tab[i]; m=s/a; return(m); } void echange(tableau t,int i,int j) //échange , dans le tableau t, les valeurs en position i et j { float tmp; tmp=t[i]; t[i]=t[j]; t[j]=tmp; } int lepluspetit(tableau t, int debut, int nb) //cherche le plus petit dans t (en commençant en position début) { int i,pp; pp=debut; //je suppose que c'est le premier for(i=debut+1;i<nb;i++) if(t[i]<t[pp])pp=i; //j'en ai trouvé un plus petit return(pp); } void trier(tableau t, int n) { int i,pp; for(i=0;i<n-1;i++) { pp=lepluspetit(t,i,n); if(pp!=i)echange(t,i,pp); } } void main(void) { tableau tab[5]; char rep; int nb[5]={0}; //initialisé à 0 int i; do { printf ("\nSaisie,Affichage,Moyenne,Trier,Quitter?"); rep=toupper(getche()); //changer en majuscules if(rep!='Q') { printf("\nlequel (entre 0 et 4) ? "); scanf("%d",&i); } switch (rep) { case 'S': saisie (tab[i],&(nb[i]));break; case 'A': affiche (tab[i],nb[i]);break; case 'M': printf("\nmoyenne:%f ",moyenne(tab[i],nb[i]));break; case 'T': trier(tab[i],nb[i]);break; } } while (rep!='Q'); puts("\n ---- salut ----"); }
retour au sommaire des travaux pratiques d'informatique.