Simon009
Messages postés55Date d'inscriptionmardi 8 juillet 2008StatutMembreDernière intervention 9 septembre 2011
-
22 mars 2009 à 20:33
Bonjour,
J'ai un exercices a faire qui fera en sorte que, je vais lui passer 5 nombre qu'il mettra en ordres croissant et 5 autres nombres qu'il mettra en ordre décroissant. Le croissant fonctionne mais pas le décroissant. Quand ces supposer etre en ordre décroissante, il me met les chiffre qui j'avais en ordre croissant. Merci de votre aide, voila mon code.
//directives au pré processeur
#include "stdafx.h"
#include <iostream>
#include <iomanip>
#include <fstream>
using namespace std;
//prototype de fonction
void SaisirNombre(int iNb[], int iDim);
void TriCroiSelect(int iVec[], int iDim);
void TriDeCroiSelect(int iVec[], int iDim);
int const TAILLE1 = 5; // Compteur pour la boucle
int const TAILLE2 = 5;
void main()
{
int iNb[TAILLE1], // Premiere saisie de nombre
iNb2[TAILLE2]; // Deuxieme saisie de nombre
cout << "Voici le premier vecteur trie croissant avec tri par selection :" << endl;
TriCroiSelect(iNb, TAILLE1);
for ( int i = 0 ; i< TAILLE1; i++)
cout << iNb[i] << "," ;
cout << endl;
TriDeCroiSelect(iNb2, TAILLE2);
cout << "Voici le deuxieme vecteur trie decroissant avec tri par insertion :" << endl;
for ( int i = 0 ; i< TAILLE2; i++)
cout << iNb2[i] << "," ;
system("pause");
cout << "Voici la fusion des deux vecteurs triée en ordre croissant :" << endl;
cout << "Entrer un nombre a rechercher : ";
}
// Lire 5 Nombres
void SaisirNombre(int iNb[], int iDim)
{
for (int i =0 ; i<iDim; i++)
cin >> iNb[i];
}
// Trier en ordres croissant le premier vecteur
void TriCroiSelect(int iVec[], int iDim)
{
int PosMin = 5;
for(int i=0; i < iDim; i++)
{
PosMin = i;
for(int j = i+1; j < iDim; j++)
if(iVec[j] < iVec[PosMin])
{
PosMin = j;
}
if (i != PosMin)
swap (iVec[i], iVec[PosMin]);
}
}
void TriDeCroiSelect(int iVec[], int iDim)
{
int iTemp,
i,
j;