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 :


