Alors voilà j'ai fais ma petite fonction qui me permets de remplacer une valeur minimale dans t par n, si n est supérieur à cette valeur.
Auparavant j'ai fais une fonction indice_min qui retourne l'indice de la première occurrence du min trouvé dans le tableau t, mon objectif est de faire une fonction qui retourne les j valeurs les plus grande d'un tableau passé en paramètre . Je suis totalement bloquée, pourriez vous me donner des pistes please Alors je pense que cette fonction remplace_min que j'ai écris peut mettre utile
la voici
void remplace_min_if_sup(int n, int t[], int len)
{
int indice = indice_Min(t,len) ;
int e ;
if (n > t[indice])
t[indice] = n ;
for (e = 0 ; e < len ; e++) /*juste pour vérifier que la valeur a bien ete changé */
printf("[%d]",t[e]) ;
printf("\n\n") ;
}
mais j'ai du mal à trouver le corps qui me permet de sortir les j grandes valeurs de la fonction, pour l'instant voici ce que j'ai fais
int* valeur_Max(int t[], int len, int j)
{ int* plusGrand = malloc(j*sizeof(int)) ;
int nb = 0 ;
while (nb < j)
{ //parcourir le tableau t j fois,
//1) on trouve le max
//2) on l'enlève du tableau t et on l'ajoute à plusGrand .
}
return plusGrand ; }
Je trouve que ce n'est pas suffisamment clair. Que veux-tu faire exactement?
+ imprimer les 'j' valeurs les plus grandes
+ enlever les autres valeurs du tableau original
+ recopier ces 'j' valeurs dans un autre tableau
+ etc.
Autant pour moi je reformule, en faite je souhaiterais retourner un tableau contenant les j (j = un int que je connais) valeurs les plus grandes du tableau passé en paramètre. Après les commentaires que j'ai mit dans mon code c'est juste les idées que j'essaye de mettre en place pour résoudre ce problème
Bonjour ! Je n'ai pas regardé ton programme, juste lu le but de ce programme. Je pense que ça peut se faire en deux temps :
1) On ordonne le tableau du plus grand au plus petit. (Si on ne doit pas toucher au tableau original, on fait ça dans une copie).
2) On extrait du tableau ordonné les j premières valeurs (d'où l'ordre décroissant) qu'on place dans le tableau final, qui est un tableau dynamique de taille j (du coup je viens de regarder rapidement ton programme, je vois que c'est prévu).
Pour ne pas faire d'opérations superflues, on peut arrêter le tri du tableau dès qu'on a trouvé les j plus grandes valeurs.
Bonjour ! Je n'ai pas regardé ton programme, juste lu le but de ce programme. Je pense que ça peut se faire en deux temps :
1) On ordonne le tableau du plus grand au plus petit. (Si on ne doit pas toucher au tableau original, on fait ça dans une copie).
2) On extrait du tableau ordonné les j premières valeurs (d'où l'ordre décroissant) qu'on place dans le tableau final, qui est un tableau dynamique de taille j (du coup je viens de regarder rapidement ton programme, je vois que c'est prévu).
Pour ne pas faire d'opérations superflues, on peut arrêter le tri du tableau dès qu'on a trouvé les j plus grandes valeurs.
Oh top merci ! Votre prototype est très pertinent thxs !
Retourner un tab
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Le Tout est souvent plus grand que la somme de ses parties.