typedef float * tableau;
-------------------------
void main(void)
{
char rep;
int nb=0;
float tab[100];
puts("combien d'éléments ?");
scanf("%d",&nb);
do
{
puts("Saisie, Affiche, Moyenne, Quitter ?");
printf("%c\n",rep=toupper(getch()));
switch (rep)
{
case 'S':saisie(tab,nb);break;
case 'A':affiche(tab,nb);break;
case 'M':moyenne(tab,nb);
}
}while (rep!='Q');
}
écrire les fonctions saisie, affiche et moyenne.
void enleve(tableau t, int *nb)
{
int lequel, i;
puts("lequel?");
scanf("%d",&lequel);
for(i=lequel+1;i<(*nb);i++)t[i-1]=t[i];
(*nb)--;
}
je donne au bout d'un moment :
tableau agrandit(tableau tab, int *dim, int nb)
{
tableau grdtab;
int d,i;
d=((*dim)*11/10+1;
grdtab=malloc(d*sizeof(float));
for(i=0;i<nb;i++) grdtab[i]=tab[i];
free(tab);
*dim=d;
return(grdtab);
}
# include <stdio.h>
# include <stdlib.h>
typedef float * tableau;
void saisie(tableau tab,int a)
{
int i;
printf("\nC'est parti pour la saisie des %d valeurs\n",a);
for (i=0;i<a;i++)
{
printf("position %d : donnez la valeur : ",i+1);
scanf("%f",&(tab[i]));
}
}
void affiche(tableau tab,int a, int dim)
{
int i;
printf("\nle tableau contient %d valeurs, pour une dimension de %d",a,dim);
printf("\nvaleurs du tableau : ");
for (i=0;i<a;i++) printf ("\n\tposition %d : %f",i+1,tab[i]);
}
void moyenne(tableau tab,int a)
{
int i;
float s=0,m;
for (i=0;i<a;i++) s=s+tab[i];
m=s/a;
printf("\nLa moyenne vaut %f",m);
}
int enlever(tableau tab,int b)
{
int i,g;
printf("\nquelle est la position de la valeur à enlever ? ");
scanf("%d",&g);
for (i=g-1;i<b;i++) tab[i]=tab[i+1];
return (b-1);
}
void rajouter(tableau *tab,int *nb,int *dim)
{
tableau gros;
int i,g;
float val;
if(*nb>=*dim)
{
(*dim)=(11*(*dim))/10+1;
gros=malloc((*dim)*sizeof(float));
for(i=0;i<*nb;i++)gros[i]=(*tab)[i];
free(*tab);
*tab=gros;
}
printf("\nQuelle valeur voulez-vous ajouter ? ");
scanf("%f",&val);
printf("En quelle position voulez-vous l'ajouter (entre 1 et %d) ? ",*nb+1);
scanf("%d",&g);
for (i=*nb;i>g-1;i--) (*tab)[i]=(*tab)[i-1];
(*tab)[g-1]=val;
(*nb)++;
}
void main(void)
{
tableau tab,tab1; char rep; int nb,dim,i;
printf ("\nCombien de valeurs ? ");
scanf ("%d",&nb);
dim=nb;
tab=malloc(nb*sizeof(float));
do
{
printf ("\nSaisie,Affichage,Moyenne,Enlever,Rajouter,Quitter?");
rep=toupper(getche());
switch (rep)
{
case 'S': saisie (tab,nb);break;
case 'A': affiche (tab,nb,dim);break;
case 'M': moyenne (tab,nb);break;
case 'E': nb=enlever (tab,nb);break;
case 'R': rajouter(&tab,&nb,&dim);
}
}
while (rep!='Q');
puts("\n ---- salut ----");
}
Patrick TRAU,ULP - IPST 2/12/97