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

Défi

Facile

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

  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 nombres de type double contenant, dans cet ordre, la somme, la moyenne, le maximum et le minimum.


Remarques importantes :
  • Utilise le paramètre size pour contrôler ta boucle : n’utilise pas std::size().
  • Pour initialiser max et min, donne-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 à l’aide de new et le libère avec delete[]. Tu dois seulement allouer le tableau de résultats dans ta fonction à l’aide de new double[4] et le renvoyer. Remarque : les pointeurs et la mémoire dynamique avec new sont présentés en détail dans une section ultérieure. Ici, tu dois seulement suivre le modèle new double[4] indiqué.

Approche suggérée :
  1. Initialise sum = 0, max = arr[0] et min = arr[0].
  2. Fais une boucle de i = 0 à i < size, en accumulant la somme et en mettant à jour max/min si nécessaire.
  3. Calcule la moyenne avec sum / size.
  4. 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;
}
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