C++ (Les tableaux et les tri)

Fermé
Simon009 Messages postés 55 Date d'inscription mardi 8 juillet 2008 Statut Membre Derniè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 << "Entrer " << TAILLE1 << " nombres :" << endl;
SaisirNombre(iNb, TAILLE1);

cout << "Entrer " << TAILLE2 << " autres nombres :" << endl;
SaisirNombre(iNb2,TAILLE2);

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;

for (i = 1;i < iDim; i++)
{
iTemp = iVec[i];
for(j=i-1; j>=0; j--)
{
if( iTemp < iVec[j])
break;
else
iVec[j+1] = iVec[j];
}
iVec(j+1) = iTemp;
}
}