Opérations courantes sur les tableaux
Fait partie de la section Fondamentaux du Journey C++ de Coddy — leçon 66 sur 74.
Voici quelques opérations courantes sur les tableaux :
- Trouvez la somme de tous les éléments d'un tableau :
int numbers[] = {1, 2, 3, 4, 5};
int sum = 0;
for (int number : numbers) {
sum += number;
}
std::cout << "Sum: " << sum;- Trouver la moyenne des éléments d'un tableau :
int numbers[] = {1, 2, 3, 4, 5};
double sum = 0;
for (int number : numbers) {
sum += number;
}
double average = sum / std::size(numbers);
std::cout << "Average: " << average;- Trouver l'élément maximum dans un tableau :
int numbers[] = {1, 5, 2, 9, 3};
int max = numbers[0];
for (int i = 1; i < std::size(numbers); i++) {
if (numbers[i] > max) {
max = numbers[i];
}
}
std::cout << "Max: " << max;- Trouver l'élément minimum dans un tableau :
int numbers[] = {1, 5, 2, 9, 3};
int min = numbers[0];
for (int i = 1; i < std::size(numbers); i++) {
if (numbers[i] < min) {
min = numbers[i];
}
}
std::cout << "Min: " << min;Défi
FacileCréez une fonction nommée calculateStats qui prend en entrée un tableau de doubles et la taille du tableau, et effectue les opérations suivantes :
- Calcule la somme de tous les éléments du tableau.
- Calcule la moyenne des éléments du tableau.
- Trouve l'élément maximum du tableau.
- Trouve l'élément minimum du tableau.
La fonction doit retourner un tableau de doubles contenant la somme, la moyenne, le maximum et le minimum, dans cet ordre.
Remarques importantes :
- Utilisez le paramètre
sizepour contrôler votre boucle — n'utilisez passtd::size(). - Pour initialiser
maxetmin, commencez-les àarr[0]— cela fonctionne correctement même lorsque le tableau ne contient que des nombres négatifs. - Le code pré-écrit dans
main()alloue déjà un tableau dynamique en utilisantnewet le libère avecdelete[]— vous n'avez qu'à allouer le tableau de résultat à l'intérieur de votre fonction en utilisantnew double[4]et à le retourner.
Approche suggérée :
- Initialisez
sum = 0,max = arr[0]etmin = arr[0]. - Bouclez de
i = 0ài < size, en accumulant la somme et en mettant à jour max/min si nécessaire. - Calculez la moyenne comme
sum / size. - Allouez un nouveau tableau avec
new double[4], stockez les quatre résultats dans l'ordre et retournez-le.
Aide-mémoire
Opérations courantes sur les tableaux en C++ :
Somme de tous les éléments :
int numbers[] = {1, 2, 3, 4, 5};
int sum = 0;
for (int number : numbers) {
sum += number;
}Moyenne des éléments :
int numbers[] = {1, 2, 3, 4, 5};
double sum = 0;
for (int number : numbers) {
sum += number;
}
double average = sum / std::size(numbers);Élément maximum :
int numbers[] = {1, 5, 2, 9, 3};
int max = numbers[0];
for (int i = 1; i < std::size(numbers); i++) {
if (numbers[i] > max) {
max = numbers[i];
}
}Élément minimum :
int numbers[] = {1, 5, 2, 9, 3};
int min = numbers[0];
for (int i = 1; i < std::size(numbers); i++) {
if (numbers[i] < min) {
min = numbers[i];
}
}Essayez vous-même
#include <iostream>
double* calculateStats(double arr[], int size) {
// Vous devrez calculer 4 valeurs avant de les stocker dans newArr
// Initialisez les variables pour la somme (commencez à 0), le max et le min (commencez les deux à arr[0])
// Utilisez une boucle for pour parcourir le tableau
// À l'intérieur de la boucle :
// - Ajoutez chaque élément à la somme
// - Comparez chaque élément avec max et mettez à jour s'il est plus grand
// - Comparez chaque élément avec min et mettez à jour s'il est plus petit
// Calculez la moyenne = somme / taille (après la boucle)
double* newArr = new double[4];
newArr[0] = sum;
newArr[1] = average;
newArr[2] = max;
newArr[3] = min;
return newArr;
}
int main() {
int n;
std::cin >> n;
std::cin.ignore();
double arr[n];
for (int i = 0; i < n; i++) {
double val;
std::cin >> val;
arr[i] = val;
}
double* stats = calculateStats(arr, n);
std::cout << "Sum: " << stats[0] << std::endl;
std::cout << "Average: " << stats[1] << std::endl;
std::cout << "Maximum: " << stats[2] << std::endl;
std::cout << "Minimum: " << stats[3] << std::endl;
delete[] stats;
return 0;
}Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Fondamentaux
4Opérateurs - Partie 1
Opérateurs arithmétiquesOpérateur moduloIncrémentation / DécrémentationPost-incrémentation / Post-décrémentationRaccourcis arithmétiquesOpérateurs de comparaisonComparaison de chaînes7Bases des entrées/sorties
Instruction coutInstruction cinSaisie de chaînes de caractèresRécapitulatif - Jusqu'à 120Récapitulatif - Vrai ou Faux5Opérateurs, partie 2
Opérateurs logiques, partie 1Opérateurs logiques, partie 2Récapitulatif - Logique simpleOpérateurs logiques, partie 311Bases des tableaux
Déclaration de tableauxAccéder aux élémentsModifier des élémentsRécapitulatif - Affichage formaté d'un tableauTableaux et fonctionsRécapitulatif - Produit d'un tableauRécapitulatif - Tableau inverséBoucle for amélioréeOpérations courantes sur les tableaux3Variables - Partie 2
Déclaration de typeConventions de nommageRécapitulatif - Initialisation des variablesType Casting - Partie 1Type Casting - Partie 26Prise de décision
L'instruction IfIf - ElseL'instruction SwitchOpérateur conditionnelRécapitulatif - If ElseIf - Else imbriqués