0
votes

Programme en C ++ qui prend 3 numéros et les envoyer à une fonction puis calculer la fonction moyenne de ces 3 numéros

Programme en C ++ qui prend 3 numéros et les envoyer à une fonction, puis calculez la fonction moyenne de ces 3 numéros.


Je sais faire cela sans utiliser de fonction, par exemple pour tous les numéros n. J'ai le programme suivant: xxx

ou celui qui le faisait en utilisant des tableaux: xxx


mais est Il est possible d'utiliser des fonctions? Si oui, alors comment? Merci beaucoup d'avoir aidé.


5 commentaires

Oui, c'est possible avec une fonction. Il suffit de passer num et n à la fonction.


En C ++, il serait plus approprié d'utiliser std :: vecteur au lieu d'un tableau.


C n'est pas le même que C ++ . Lire plus sur eux , pour C ++, lisez Ce livre . Pour c, lisez que celui-ci


@ Starynkevitch Basile, merci pour le lien


Voici un autre à considérer: Pourquoi "Utilisation de l'espace de noms std;" considéré comme une mauvaise pratique? . Dis bonjour à tex pour moi ....


4 Réponses :


1
votes

C'est un exemple destiné à vous donner une idée de ce qui doit être fait. Vous pouvez faire cela la manière suivante:

// we pass an array "a" that has N elements
double average(int a[], const int N)
{
    int sum = 0;
    // we go through each element and we sum them up
    for(int i = 0; i < N; ++i)
    {
        sum+=a[i];
    }
    // we divide the sum by the number of elements
    // but we first have to multiply the number of elements by 1.0
    // in order to prevent integer division from happening
    return sum/(N*1.0);
}

int main() 
{
    const int N = 3;
    int a[N];

    cin >> a[0] >> a[1] >> a[2];

    cout << average(a, N) << endl;

    return 0;
}


0 commentaires

1
votes

Donc, j'ai créé deux options pour vous, un vecteur d'utilisation et c'est vraiment confortable car vous pouvez trouver la taille avec un membre de la fonction et l'autre avec un tableau

#include <iostream>
#include <vector>

float average(std::vector<int> vec)
{
    float sum = 0;
    for (int i = 0; i < vec.size(); ++i)
    {
        sum += vec[i];
    }
    sum /= vec.size();
    return sum;
}
float average(int arr[],const int n)
{
    float sum = 0;
    for (int i = 0; i < n; ++i)
    {
        sum += arr[i];
    }
    sum /= n;
    return sum;
}
int main() {
    std::vector<int> vec = { 1,2,3,4,5,6,99};
    int arr[7] = { 1,2,3,4,5,6,99 };
    std::cout << average(vec) << " " << average(arr, 7);
}


0 commentaires

0
votes

Comment faire cela sans utiliser une fonction p>

assez simple. Il suffit de mettre votre code dans une fonction, appelons-le calculateur de calcul code> et retour code> la valeur moyenne de celle-ci. Quelle devrait prendre cette fonction comme entrée? P>

  • La liste des chiffres ( de numéros code>) li>
  • NUMÉROS TOTAL ( N CODE>) LI> ul>

    prenez d'abord l'entrée de l'utilisateur et mettez-la dans la matrice, vous l'avez déjà fait: P>

        int n{}, i{};
        float num[100]{}, sum=0.0, average{};
    


0 commentaires

2
votes

Autre alternative à l'utilisation de types fondamentaux pour stocker vos valeurs C ++ fournit std :: vecteur pour gérer le stockage numérique (avec la gestion de la mémoire automatique) au lieu de tableaux anciens unis et fournit de nombreux outils, comme std :: accumule . L'utilisation de ce que C ++ fournit peut réduire considérablement votre fonction pour:

$ ./bin/accumulate_vect
10
20
34
done

average: 21.3333


0 commentaires