Tableaux
Notions et points abordés :
Déclaration d'un tableau
à 1 dimension
Syntaxe |
Exemple |
// Déclaration type nom[taille];
|
// Déclaration d'un tableau de 100 variables entières int prime_numbers[100] |
Accès aux éléments d'un tableau à 1
dimension (indicés à partir de 0)
Syntaxe |
Exemple |
nom[index] = value; |
// Le premier nombre premier est 2 prime_numbers[0] = 2; // Le 100ème nombre premier est 541 prime_numbers[99] = 541; |
variable = nom[index]; |
int first_prime; first_prime = prime_numbers[0]; |
|
// Affichage du premier nombre premier printf( "%d", prime_numbers[0] ); |
scanf( "%d", &nom[index] ); |
// Lecture du 100ème nombre premier scanf( "%d", &prime_numbers[99] ); |
Tableau à 1 dimension en argument d'une fonction
#include <stdio.h> int sum ( int array [], int size ) for( i = 0, sum = 0; i < size; i++) return total; int main() sum_of_primes = sum ( prime_numbers, 6 ); printf( "La somme des 6 premiers nombres premiers est: %d\n", sum_of_primes );
|
Attention: Si vous passez un tableau comme
paramètre à une fonction, elle peut modifier les
éléments du tableau (par effet de bord) !
#include <stdio.h> void clear_array ( int array [], int size ) int main() printf( "Le
premier nombre premier est : %d\n", prime_numbers[0] ); clear_array(
prime_numbers, 6 ); printf( "Et maintenant : %d\n", prime_numbers[0] );
|
Remarque : En C, une chaine de caractère est un tableau à
1 dimension dont le type des éléments est char
.
Le caractère spécial '\0'
est
utilisé pour indiquer la fin de la chaine.
#include <stdio.h> int main() return 0; |
Déclaration
d'un tableau à 2 dimensions
Syntaxe |
Exemple |
// Déclaration type nom[taille1][taille2]; |
// Déclaration d'un tableau à 2 dimensions int loto_numbers[52][6]; |
Accès aux
éléments d'un tableau à 2 dimensions
Syntaxe |
Exemple |
nom [index1][index2] = value; |
// Les 6 numéros du 1er tirage loto_numbers[0][0] = 3; |
printf( "%d", nom[index1][index2] ); |
first_number
= loto_numbers[0][0]; |
Tableaux à 2 dimensions en argument d'une fonction
#include <stdio.h> // On doit indiquer le nombre d'éléments sur la
deuxième dimension int sum ( int array [][6], int size ) for( i = 0; i < size; i++) return total; // autre version for( i = 0; i < 2; i++) return total; int main() sum_of_nat =
sum(naturels, 2); |
void print( int
array[], int size )
Saisir
Écrire une fonction qui saisit de l'utilisateur les éléments d'un tableau d'entiers passé en paramètre :
void read( int
array[], int size )
Maximum
Écrire une fonction qui renvoie le maximum d'un tableau d'entiers passé en paramètre :
int max( int
array[], int size )
Recherche
Écrire une
fonction qui teste si un entier x
passé en
paramètre est dans un tableau :
int
is_in_array( int array[], int size, int x )
Echange
Écrire une
fonction qui échange dans un tableau deux éléments
(d'indices i
et j
) :
void swap( int
array[], int size, int i, int j )
Occurrences
Écrire une
fonction qui calcule le nombre de fois où un nombre x
est
présent dans un tableau :
int
occurrences( int array[], int size, int x )
Miroir
Écrire une fonction qui renverse un tableau (par exemple, {1, 2, 3} devient {3, 2, 1}) :
void reverse(
int array[], int size )
Permutation
circulaire
Écrire une fonction qui effectue une permutation circulaire de la gauche vers la droite d'un tableau (par exemple, {1, 2, 3, 4} devient {4, 1, 2, 3}) :
void permutate(
int array[], int size )
Palindrome
Écrire une fonction qui teste si un tableau est un palindrome, c'est-à-dire qu'il reste le même si on inverse l'ordre (par exemple {1, 2, 3, 2, 1} est un palindrome, mais {1, 2, 3} ne l'est pas) :
int
is_palindrome( int array[], int size )
Afficher2
Écrire une fonction qui affiche les éléments d'un tableau à 2 dimensions passé en paramètre :
void print2(
int array[][3], int size )
Saisir2
Écrire une
fonction qui saisit de l'utilisateur les éléments d'un
tableau à deux dimensions d'entiers passé en
paramètre
:
void read2( int
array[][3], int size )
Maximum2
Écrire une fonction qui renvoie le maximum d'un tableau d'entiers à deux dimensions passé en paramètre :
int max2( int
array[][3], int size )
Occurrences2
Écrire une fonction qui calcule le nombre d'occurrences d'un nombre dans un tableau à deux dimensions :
int
occurrences2( int array[][3], int size, int x )
Sudoku
Écrire une fonction qui teste si un tableau 3x3 contient la solution du jeu Sudoku (les éléments sont les nombres 1,..,9 sans répétition) :
int is_sudoku(
int array[3][3] )