Manipulation de taleaux d'entiers
Manipulation de tableaux d'entiers en C, en mode console.
Procédure d'affichage d'un tableau d'entiers en mode console :
void afficher(int *t, int size) { int i; for (i = 0; i < size; i++) printf("%d ", t[i]); }
Procédure pour la saisie des éléments d'un tableau d'entiers :
void saisir(int *t, int size) { printf("Saisir les %d occurences du tableau : \n", size); int i; for (i = 0; i < size; i++) { printf("Valeur en %d > ",i + 1); scanf("%d", &t[i]); fflush(stdin); // Vidage mémoire tampon clavier } }
Procédure de remise à zéro des éléments d'un tableau d'entiers :
void raz(int *t, int size) { int i; for (i = 0; i < size; i++) t[i] = 0; }
Procédure demandant à l'utilisateur de saisir la position d'un élément d'un tableau d'entiers pour en modifier la valeur :
void modifier(int *t, int size) { int position, valeur; do { printf("POSITION > "); scanf("%d", &position); fflush(stdin); printf("VALEUR > "); scanf("%d", &valeur); fflush(stdin); if (position >= size + 1) printf("^^^ Erreur position ^^^"); } while(position >= size + 1); t[position - 1] = valeur; }
Procédure pour retouver l'entier le plus grand dans un tableau :
void maximum(int *t, int size) { int i, maximum = t[0]; for (i = 1; i < size; i++) { if (t[i] > maximum) maximum = t[i]; } printf("Le nombre maximum est %d", maximum); }
Procédure pour retouver l'entier le plus petit dans un tableau :
void minimum(int *t, int size) { int i, minimum = t[0]; for (i = 1; i < size; i++) { if (t[i] < minimum) minimum = t[i]; } printf("Le nombre minimum est %d", minimum); }
Fonction indiquant et retournant la somme des éléments d'un tableau d'entiers :
int somme(int *t, int size) { int i, somme = 0; for (i = 0; i < size; i++) somme += t[i]; printf("La somme du tableau est de %d", somme); return somme; }
Procédure indiquant la moyenne des entiers d'un tableau d'entiers :
void moyenne(int *t, int size) { int moyenne; moyenne = somme(t, size) / size; printf("\nLa moyenne est de %d", moyenne); }
Procédure de tri d'un tableau d'entiers :
L'utilisateur doit d'abord indiquer l'ordre dans lequel trier les entiers :
void trier(int *t, int size) { int i, j, temp; char choix; printf("C - Croissant\n"); printf("D - Decroissant\n Choix > "); scanf("%c", &choix); fflush(stdin); // Vidage mémoire tampon clavier for (i = 0; i < size; i++) { for (j = i + 1; j < size; j++) { if (choix == 'C' || 'c') { if (t[j] < t[i]) { temp = t[i]; t[i] = t[j]; t[j] = temp; } } else if (choix == 'D' || 'd') { if (t[j] > t[i]) { temp = t[i]; t[i] = t[j]; t[j] = temp; } } } } }
D'autres procédures et fonctions sont disponibles dans le fichier source...
Capture d'écran
Télécharger le fichier de l'exemple :