bubble_sorting_input

#include <stdio.h> #include <stdlib.h> int swaps(int *num1, int *num2); int main() { int card; /*D'abord on demande combien de nombres mettre dans la liste. */ printf("How many elements?\n"); /*grace a la ligne suivante l'utilisateur va inscrire ce nombre qui sera appele "card'.*/ scanf("%d", &card); /*par la ligne suivante on affiche le nombre "card" qui a ete choisi.*/ printf("The length of the array will be %d\n", card); /*a la ligne suivante on initialise un tableau qui a pour longueur "card'.*/ int numbers[card]; /*Dans la boucle qui suit on va demander a l'utilisateur de remplir dans l'ordre les "card" nombres du tableau*/ for (int i = 0; i<card; i++) { printf ("enter the %d indexed number\n", i); scanf ("%d", &numbers[i]); } /*Dans la ligne suivante on va impimer le tableau.*/ printf("\nThe list of numbers is "); /*Ici on va utiliser un pointeur pour l'incrementer et avoir tous les elements de la liste*/ int *ptnumbers = NULL; int j; ptnumbers = numbers; for(j = 0; j < card; j++) printf("%d ,", *(ptnumbers +j)); /*Maintenant on va faire defiler tous les couples de nombres adjacents, le premier et le deuxieme, le premier et le troisieme, jusqu'a la fin, puis le deuxieme et le troisieme, le deuxieme et le quatrieme etc, de maniere a s'assurer que le premier n'est pes plus grand qu'un des nombres qui le suivent, de meme pour le deuxieme avec les nombres qui le suivent ect*/ for(int a = 0; a < card; a++) { for(int b = a+1; b < card; b++) { /*Mais il y a le cas ou les nombres ne sont pas bien ordonner, on prete attention a ce cas par la ligne suivante qui exprime ceci par une condition*/ if(numbers[a] > numbers[b]) /*Si cette condition est remplie il faut changer l'ordre de ces deux nombres. Pour ce faire on va utiliser la forncion "swap" qui inverse les adresses de deux nombres, c'est dans cette adresse qu'est insrite la valeur de chaque nom de nombre*/ swaps(&numbers[a], &numbers[b]); } } /*Et finalement on imprime la nouvelle version ordonnee du tableau.*/ printf("\nThe new list of numbers is "); for(j = 0; j < card; j++) printf("%d ,", *(ptnumbers +j)); return 0; } /*Cette fonction"swap" utilise une valeur temporaire, c'est a dire les adresses des variables, car si on utilisait les variables et on faisait num1 = num2 et num2=num1, ces deux variables auraient la valeur de num2, de plus, pour que la transformation soit gardee meme apres le scope de la fornction on utilise les pointeurs qui atteigne l'endroit ou est stockee la valeur correspondant a chaque variable.*/ int swaps(int *num1, int *num2) { int temp; temp = *num1; *num1 = *num2; *num2 = temp; return 0; }
utiliser scanf, utiliser des tableaux et des pointeurs, la fonction swap, et un algorithme de rangement. utiliser un pointeur pour l'incrementer et faire defiler les elements de la liste.

Be the first to comment

You can use [html][/html], [css][/css], [php][/php] and more to embed the code. Urls are automatically hyperlinked. Line breaks and paragraphs are automatically generated.