J'utilise le tri de tri pour trier une liste de noms d'une équipe de cricket.Erreur de tri de tri de sélection
Le tri fonctionne après avoir répété trois fois un nom, ce qui élimine deux autres noms de la matrice que je suis en train de trier.
entrée de réseau (dans l'ordre):
Clarke Watson Beer Copeland Haddin Harris Hughes Hussey Johnson Khawaja Lyon Marsh Pattinson Ponting Siddle Warner
sortie après tableau de tri:
Beer Bière Copeland Haddin Harris Hughes Hussey Johnson Khawaja Lyon Marsh Pattinson Ponting
code:
void sort_names (Team_t player[]) {
int pos;
int min;
int i, str_check;
char *temp = NULL;
for (pos = 0; pos < MAX_PLYR; pos++) {
min = pos;
for (i = (pos + 1); i < MAX_PLYR; i++) {
str_check = strcmp(player[i].pname, player[min].pname);
if (str_check < 0) {
min = i;
}
}
if (min != pos) {
temp = player[pos].pname;
strcpy(player[pos].pname, player[min].pname);
strcpy(player[min].pname, temp);
}
}
}
Avez-vous essayé de passer le code avec un débogueur (ou même un stylo et du papier) pour voir ce qui se passe? – Vicky
J'ai peut-être manqué quelque chose, j'ai consulté le bureau à quelques reprises, et j'ai cassé l'enfer. –
Votre code s'est saoulé après avoir obtenu «bière»: -/ – DhruvPathak