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> 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{};
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> et
n 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 ....