Désolé d'avoir ouvert un autre sujet avant que je résolve mon autre problème. Ce problème est plus important. Je ne sais pas si quelqu'un comprendra mon code parce que je l'ai traduit en anglais. Le programme fonctionne comme une liste de commandes sur Internet ou quelque chose comme ça. Vous pouvez ajouter des commandes, les supprimer, les trier par ID ou Date, vous pouvez les enregistrer et les charger. Le tri par date est mon problème. Par exemple, j'ajoute des dates comme 2013, 2011 et 2012. Quand j'essaie de les trier, rien ne se passe, ils restent dans le même ordre. Si quelqu'un comprend ce pls dites-moi quel est le problème? C'est un projet scolaire et je dois le réparer jusqu'à demain. Quelqu'un peut-il m'aider avec ça?Tri par date numéro
// according = 1 (Date) 2 = (Price)
void sort(int accor)
{
int i,j,replace=0;
ORDER *Pom;
for(i=0;i<Piece-1;i++){
for(j=0;j<Piece-1;j++){
if(according == 1){
if(strcmp(Item[j]->Date, Item[j+1]->Date) > 0)
replace = 1;
else
replace = 0;
}else if(according == 2){
if(Item[j]->Price > Item[j+1]->Price)
replace = 1;
else
replace = 0;
}
if(replace){
Pom = Item[j];
Item[j] = Item[j+1];
Item[j+1] = Pom;
}
Un nitpick mineur: 'Item [j +] -> Date' devrait être' Point [j + 1 ] -> Date'. – user2448027
Essayez d'utiliser 'i' au lieu de' j + 1' et avant d'échanger des éléments, vérifiez que 'i' n'est pas égal à' j'. J'espère que cela pourra aider. – user2448027
Quel type est 'Item []'? Tableau de 'ORDER *'? –