Question:programmation C++
Fermé
Anna
-
3 avril 2006 à 14:22
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 3 avril 2006 à 22:11
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 3 avril 2006 à 22:11
4 réponses
Salut Anna, Quelle erreur renvoie ton compilo ?
je pense que ton problème vient du fait que dans ta fonction MAXIMUM, la variable dim est inconnue (idem pour la fonction MINIMUM)
==> solution : passer la variable dim en argument de ta fonction
Sinon, tu peux faire d'une pierre deux coups entre ta fonction MAXIMUM et MAXRANG
code non testé mais je pense qu'il devrait fonctionner.
je pense que ton problème vient du fait que dans ta fonction MAXIMUM, la variable dim est inconnue (idem pour la fonction MINIMUM)
==> solution : passer la variable dim en argument de ta fonction
Sinon, tu peux faire d'une pierre deux coups entre ta fonction MAXIMUM et MAXRANG
double MAXIMUM(int T[],int dim,int * rang) { /* T : tableau d'entiers dim : dimension du tableau rang : indice du max */ int max=T[0]; rang=0; for(int i=1;i<dim;++i) if(T[i]>max) { max=T[i]; rang=i; }
code non testé mais je pense qu'il devrait fonctionner.
j'ai oublié, dans ma fonction il faut rajouter à la fin : return max
ouh là là, je recommence ma fonction car il y a encore une faute
double MAXIMUM(int T[],int dim,int & rang) { /* T : tableau d'entiers dim : dimension du tableau rang : indice du max */ int max=T[0]; rang=0; for(int i=1;i<dim;++i) if(T[i]>max) { max=T[i]; rang=i; } return max;
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
3 avril 2006 à 22:11
3 avril 2006 à 22:11
Salut.
L'erreeur dans ton programme Ana c'est que dans ta fonction, tu déclare dim mais tu ne l'initialise pas :
"int dim;" est équivalent à "int dim=0;"
donc ta boucle ne fait qu'un tour d'où lobtention du premier argument.
Pom, à ta place je mettrai "int MAXIMUM..." plutot que 'double'
de plus pour eviter les segmentaztion fault, je conseil :
int *T;
cin>>dim;
T=new int[dim];
ce qui necessite peut être de remplacer "int MAXIMUM(int T[]..." par
"int MAXIMUM(int*T.." mais c'est plus propre!
Bonne continuation
L'erreeur dans ton programme Ana c'est que dans ta fonction, tu déclare dim mais tu ne l'initialise pas :
"int dim;" est équivalent à "int dim=0;"
donc ta boucle ne fait qu'un tour d'où lobtention du premier argument.
Pom, à ta place je mettrai "int MAXIMUM..." plutot que 'double'
de plus pour eviter les segmentaztion fault, je conseil :
int *T;
cin>>dim;
T=new int[dim];
ce qui necessite peut être de remplacer "int MAXIMUM(int T[]..." par
"int MAXIMUM(int*T.." mais c'est plus propre!
Bonne continuation