Je suis novice en programmation et j'ai toujours des problèmes avec les tableaux, les pointeurs et les fonctions. J'aimerais savoir ce qui ne va pas et comment je peux y remédier. Spécifiquement pourquoi le pointeur ne fonctionne pas avec la fonction. Voici le programme que j'essaie d'écrire: Ecrire un programme qui crée DYNAMIQUEMENT un pointeur vers un tableau assez grand pour contenir un nombre défini de tests. Une fois que tous les scores sont entrés (dans la fonction principale), le tableau doit être passé à une fonction qui renvoie un DOUBLE pour le score moyen. Dans la sortie utilisateur, le score moyen doit être formaté avec deux décimales. Utilisez la notation par pointeur; n'utilisez pas la notation de tableau.En C++, comment utiliser les pointeurs pour obtenir la moyenne d'un tableau?
#include <iostream>
#include <iomanip>
#include <memory>
using namespace std;
double getAverage(int, int);
int main()
{
int size = 0;
cout << "How many scores will you enter? ";
cin >> size;
unique_ptr<int[]> ptr(new int[size]);
cout << endl;
int count = 0;
//gets the test scores
for (count = 0; count < size; count++)
{
cout << "Enter the score for test " << (count + 1) << ": ";
cin >> ptr[count];
cout << endl;
}
//display test scores
cout << "The scores you entered are:";
for (count = 0; count < size; count++)
cout << " " << ptr[count];
cout << endl;
double avg;
avg = getAverage(ptr, size);
cout << setprecision(2) << fixed << showpoint << endl;
cout << "The average is " << avg << endl;
return 0;
}
double getAverage(int *ptr, int size)
{
double average1;
double total = 0;
for (int count = 0; count < size; count++)
{
total = total + *(ptr + count);
}
average1 = total/size;
return average1;
}
Il y a deux fonctions distinctes nommées 'getAverage' dans votre programme. On est déclaré à prendre deux 'int' mais jamais implémenté; c'est celui que vous essayez d'appeler 'main', avec de mauvais types d'arguments. L'autre prend 'int '' et 'int' - celui-ci est implémenté, mais jamais appelé. –
[Comment puis-je passer unique_ptr dans une fonction] (https://stackoverflow.com/q/30905487/669576) –