bonjour,je suis en train de relire mes tp de 1ere année et,n'étant pas très douée surtout avec les pointeurs,je rencontre quelques difficultés de compréhension.
en effet le but du tp est de chercher le minimum et la maximum dans un tableau avec des entiers tirés aléatoirement dans[0,50]
dans le main,on crée un tableau d'entiers,dont la taille est spécifiée dans le #define,puis trois variables de travail:min,max et statut de type entier.
les trois premières fonctions font intervenir une "copie" des variables(si j'ai bien compris),alors que la dernière intervient directement sur les adresses de variables grace aux pointeurs.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 voici les prototypage de fonction: void initialisationGenerateur(); void remplirTableau(int leTableau[],int nombreElements); void afficherTableau(int leTableau[],int nombreElements); int minMaxTableau( int leTableau[], int nombreElements, int*rangMinimum, int*rangMaximum);
cependant,toujours dans le main,lorsqu'on recherche le maximum et le minimum,on a la ligne suivante:
si je comprends,on met & du fait qu'on passe les adresses des variables min et max à cette fonction minMaxTableau,mais je ne comprends pas pourquoi on ne passe pas les adresses des autres paramètres pour cette fonction(celle du tableau monTableau entre autres)pour pouvoir travailler directement dessus au lieu d'en faire une copie...(j'ai d'ailleurs vu qu'il était laborieux de copier tout un tableau)
Code : Sélectionner tout - Visualiser dans une fenêtre à part statut=minMaxTableau(monTableau,TAILLE,&min,&max);
voila,j'espère que j'ai été assez claire...merci d'avance
voici la définition de la fonction minMaxTableau:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 int minMaxTableau(int tab[],int nb,int *ptMin, int*ptMax) { int i; if(nb==0) return -1; *ptMin=*ptMax=0; for(i=1;i<nb;i++) if(tab[i]< tab[*ptMin]) *ptMin=i; if(tab[i]> tab[*ptMax]) *ptMax=i; } return 0; }
Partager