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: p> ou celui qui le faisait en utilisant des tableaux: p> mais est Il est possible d'utiliser des fonctions? Si oui, alors comment? Merci beaucoup d'avoir aidé. p> p>
4 Réponses :
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;
}
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);
}
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> etretour 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{};
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
Oui, c'est possible avec une fonction. Il suffit de passer
num code> etn code> à la fonction.En C ++, il serait plus approprié d'utiliser
std :: vecteur code> au lieu d'un tableau.C n'est pas le même que C ++ B>. 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 ....