Menu
CoddyTech

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 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 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;
challenge icon

Défi

Facile

Cré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 :

  1. Calcule la somme de tous les éléments du tableau.
  2. Calcule la moyenne des éléments du tableau.
  3. Trouve l'élément maximal du tableau.
  4. Trouve l'élément minimal du tableau.

La fonction doit renvoyer un tableau de doubles contenant, dans cet ordre, la somme, la moyenne, le maximum et le minimum.


Remarques importantes :
  • Utilisez le paramètre size pour contrôler votre boucle : n'utilisez pas std::size().
  • Pour initialiser max et min, donnez-leur la valeur 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 avec new et le libère avec delete[]. Vous devez uniquement allouer le tableau de résultats dans votre fonction avec new double[4], puis le renvoyer. Remarque : les pointeurs et la mémoire dynamique avec new sont étudiés en détail dans une section ultérieure. Ici, vous devez simplement suivre le modèle new double[4] présenté.

Approche suggérée :
  1. Initialisez sum = 0, max = arr[0] et min = arr[0].
  2. Parcourez la boucle de i = 0 à i < size, en accumulant la somme et en mettant à jour max/min si nécessaire.
  3. Calculez la moyenne avec sum / size.
  4. 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 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 s’il est plus grand
    //   - Comparez chaque élément à min et mettez min à 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;
}
quiz iconTestez-vous

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

Entraînez-vous par vous-même : Compilateur C++ en ligne