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 sum 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;- Trouvez l’élément minimal 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 nombres à virgule flottante double précision 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 à virgule flottante double précision 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, donnez-leur initialement 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[]. Vous devez seulement allouer le tableau de résultats dans votre 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, il vous suffit de suivre le modèlenew double[4]indiqué.
Approche suggérée :
- Initialisez
sum = 0,max = arr[0]etmin = arr[0]. - Parcourez les valeurs de
i = 0ài < size, en cumulant la somme et en mettant à jour max/min si nécessaire. - Calculez la moyenne avec
sum / size. - Allouez un nouveau tableau avec
new double[4], stockez les quatre résultats dans l'ordre et renvoyez-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 pour sum (commencer à 0), max et min (les deux commencent à 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 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 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