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