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 :
- Trouve 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;- Trouve 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;- Trouvez l’élément maximum d’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;- Trouve 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ée une fonction nommée calculateStats qui prend en entrée un tableau de nombres de type double et la taille du tableau, puis 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 maximal du tableau.
- Trouve l’élément minimal du tableau.
La fonction doit renvoyer un tableau de nombres de type double contenant, dans cet ordre, la somme, la moyenne, le maximum et le minimum.
Remarques importantes :
- Utilise le paramètre
sizepour contrôler ta boucle : n’utilise passtd::size(). - Pour initialiser
maxetmin, donne-leur la valeurarr[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 à l’aide denewet le libère avecdelete[]. Tu dois seulement allouer le tableau de résultats dans ta fonction à l’aide denew double[4]et le renvoyer. Remarque : les pointeurs et la mémoire dynamique avecnewsont présentés en détail dans une section ultérieure. Ici, tu dois seulement suivre le modèlenew double[4]indiqué.
Approche suggérée :
- Initialise
sum = 0,max = arr[0]etmin = arr[0]. - Fais une boucle de
i = 0ài < size, en accumulant la somme et en mettant à jour max/min si nécessaire. - Calcule la moyenne avec
sum / size. - Alloue un nouveau tableau avec
new double[4], stocke les quatre résultats dans l’ordre et renvoie-le.
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 sum (à 0), max et min (toutes deux à arr[0])
// Utilisez une boucle for pour parcourir le tableau
// À l’intérieur de la boucle :
// - Ajoutez chaque élément à sum
// - Comparez chaque élément à max et mettez max à jour si l’élément est plus grand
// - Comparez chaque élément à min et mettez min à jour si l’élément est plus petit
// Calculez average = sum / size (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ésEntraînez-vous par vous-même : Compilateur C++ en ligne