1-D arrays: store, index, and traverse · Tableaux 1-D : stocker, indexer et parcourir
A row of boxes
- An array is a row of variables of the same type, kept side by side in memory.
int a[5];makes room for fiveints. They are one block, reached by number.- You can fill them when you create them:
int a[] = {10, 20, 30};makes an array of three.
Une rangée de boîtes
- Un tableau est une rangée de variables du même type, placées côte à côte en mémoire.
int a[5];alloue de l'espace pour cinqints. Ils forment un seul bloc, accessible par numéro.- Vous pouvez les remplir lors de leur création :
int a[] = {10, 20, 30};crée un tableau de trois.
Indexing from 0
- Each item has an index (a position). The first index is
0, not1. a[0]is the first item,a[1]the second, anda[n - 1]is the last in an array ofnitems.- Reading or writing outside the array (like
a[5]in a 5-item array) is a serious bug.
Indexation à partir de 0
- Chaque élément a un index (une position). Le premier index est
0, pas1. a[0]est le premier élément,a[1]le deuxième, eta[n - 1]est le dernier dans un tableau denéléments.- Lire ou écrire en dehors du tableau (comme
a[5]dans un tableau de 5 éléments) est un bug sérieux.
Traversing with a loop
- To visit every item, run an index from
0up ton - 1with aforloop. - Inside the loop, use
a[i]to read or change the item at positioni. - This is how you sum, count, or search an array.
Parcourir avec une boucle
- Pour visiter tous les éléments, parcourrez un index de
0jusqu'àn - 1avec une bouclefor. - À l'intérieur de la boucle, utilisez
a[i]pour lire ou modifier l'élément à la positioni. - C'est ainsi que vous summez, comptez ou cherchez dans un tableau.
Arrays don't know their own length
- An array does not carry its own size. A function cannot ask "how long are you?".
- So you always pass the length next to the array:
sum(a, n). - Use
const int a[]in a parameter to promise you will only read the array, not change it.
Les tableaux ne connaissent pas leur propre longueur
- Un tableau ne porte pas sa propre taille. Une fonction ne peut pas demander « quelle est ta longueur ? ».
- Vous devez donc toujours passer la longueur à côté du tableau :
sum(a, n). - Utilisez
const int a[]dans un paramètre pour vous engager à lire uniquement le tableau, sans le modifier.
#include <stdio.h>
int main(void) {
int a[] = {10, 20, 30, 40};
int n = 4, total = 0;
for (int i = 0; i < n; i++) {
total += a[i];
}
printf("%d\n", total); // 100
return 0;
}
Common mistakes
- C does NOT check array bounds:
a[n]in a size-narray is undefined. - Valid indexes run
0ton - 1.
Erreurs courantes
- Le C ne vérifie PAS les limites du tableau :
a[n]dans un tableau de taillenest indéfini. - Les indices valides vont de
0àn - 1.
Now you try
- Pass both the array and its length
n, and loop the index from0ton - 1. - For the function tasks, do not write a
main— the checker provides one.
À vous maintenant
- Passez à la fois le tableau et sa longueur
n, et parcourez l'index de0àn - 1. - Pour les tâches de fonction, n'écrivez pas de
main— le vérificateur en fournit une.
Arrays are indexed · Les tableaux sont indexés
An array stores values in order; reach one with a[i]. · Un tableau stocke des valeurs dans l'ordre ; accédez-y avec a[i].
The array a and its length n are given. In main, add up all n items and print the total on its own line. · Le tableau a et sa longueur n sont donnés. Dans main, additionnez tous les éléments n et imprimez le total sur sa propre ligne.
Click Run to see the output here. · Cliquez sur Exécuter pour voir le résultat ici.
Complete int sum(const int a[], int n) so it returns the total of the array's n items (0 when n is 0). Do not · non write a main. · Complétez int sum(const int a[], int n) pour qu'il retourne le total des n éléments du tableau (0 lorsque n est 0). Ne pas écrire de main.
Click Run to see the output here. · Cliquez sur Exécuter pour voir le résultat ici.
Complete void double_all(int a[], int n) so it doubles every item of the array, in place (no return value). Do not · non write a main. · Complétez void double_all(int a[], int n) de sorte qu'elle double chaque élément du tableau, sur place (pas de valeur de retour). Ne n'écrivez pas une main.
Click Run to see the output here. · Cliquez sur Exécuter pour voir le résultat ici.