#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.