recuperer les minimum d'une séquence d'entiers?
Bonjour,
J'aimerais savoir comment récupérer les minimum relatifs dans une séquence d'entiers. Bien que le côté algo ne soit pas mon fort, j'ai essayé différents codes mais sans résultat.
Voici le dernier en date qui me donne une série de valeurs fausses.
code en c:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| #include <iostream>
using namespace std;
int main()
{
const int taille = 10;
int tabInt[taille] = {1,2,4,2,6,8,3,9,12,0};
int min = tabInt[0];
int tabMin[4];
cout << "\ncontenu du tableau: ";
for (int n = 0; n < taille; n++)
cout << tabInt[n] << ' ';
for (n = 0; n < taille; n++)
{
if (min > tabInt[n])
{
min = tabInt[n];
if ((min < tabInt[n+1]) && (min < tabInt[n]))
tabMin[4]= min;
}
}
cout << "\nvoici le minimum absolue: " << min << endl;
cout << "\nvoici les minimum relatifs : ";
for (n = 0; n < 4; n++)
cout << tabMin[n] << ' ';
// au lieu de me donner: 1, 2, 3, 0
// il me donne: -858993460 -858993460 -858993460
// -858993460
cout << endl;
return 0;
} |
Voilà, si quelqu'un peut expliquer, ce serait sympa. Merci à tous.
Robert
[Balises CODE rajoutées par Loulou24, merci d'y penser à l'avenir]
Re: recuperer les minimum d'une séquence d'entiers?
Citation:
Envoyé par novice12
Code:
1 2 3 4 5 6 7 8 9
|
...
int main()
{
...
if ((min < tabInt[n+1]) && (min < tabInt[n]))
tabMin[4]= min;
...
} |
C'est là que ça pêche... Et que les bactéries attaquent :lol:
Ce que tu doit faire c'est initialiser les valeurs de ton tableau de min à INT_MAX (ou qqchose dans le genre. Si tu trouve rien, utilise 0x8FFFFFFF qui est le plus grand entier sur 32bits, mais c'est sâle...)
Ensuite, au lieu du code incriminé :
* Tu teste, à partir du premier (#0) si min est inférieur.
* Si oui, il faut au préalable recopier 2 dans 3, 1 dans 2 et 0 dans 1. Puis écrire min dans 0. Je te conseille d'écrire une boucle pour laquelle '3' et '0' sont des paramètres de l'exemple que je viens de te donner. Ainsi tu ne l'écrit qu'une seule fois pour les 4 étape, mais tu peux aussi augmenter la taille de tabMin.
(Les numéros représente le numéro des cases).
* On passe au suivant.
* Recommencer à partir du test
Voilà je te laisse coder... Si je suis pas clair demande.
[edit]
... perseverare diabolicum ... :wink:
[/edit]