Ich versuche, die Anzahl der in mein Array eingegebenen Klassen zurückzugeben, indem ich es von einer Funktion zurückgebe, die auch das Array füllen sollte. Mit diesen Daten möchte ich dann das Array an eine andere Funktion übergeben und die niedrigsten, höchsten und durchschnittlichen Bewertungen lesen, die in das Array geschrieben wurden. Das Programm, das ich geschrieben habe, ist unten. Ich bin mir nicht sicher, wo ich falsch liege.Wie bekomme ich die Gesamtzahl der Integer, die in ein Array eingegeben wurden, das von einer Funktion in C++ zurückgegeben wurde, sowie die niedrigste höchste und durchschnittliche Punktzahl?
#include <iostream>
#include <iomanip>
using namespace std;
int getGrades(int[], int);
void calcStats(int[], int, int&, int&, double&);
int main()
{
double av;
int count;
const int numGrades = 20;
int grade[numGrades];
int low = grade[0];
int high = grade[0];
count = getGrades(grade, numGrades);
calcStats(grade, count, low, high, av);
cout << "You have entered " << count << " grades." << endl;
cout << "The lowest score was " << low << "." << endl;
cout << "The highest score was " << high << "." << endl;
cout << "The average of all the scores was " << av << "." << endl;
system("pause");
return 0;
}
int getGrades(int grade[], int size)
{
int gr, count = 0;
cout << "Please enter up to 20 grades and -1 when finished." << endl;
while (cin >> gr && gr != -1)
{
grade[count] = gr;
count++;
}
return count;
}
void calcStats(int grade[], int S2, int &low, int &high, double &av)
{
for (int count = 1; count < S2; count++)
if (grade[count] < low)
{
low = grade[count];
}
for (int count = 1; count < S2; count++)
if (grade[count] > high)
{
high = grade[count];
}
int total = 0;
for (int count = 0; count < S2; count++)
total += grade[count];
av = total/S2;
}
Beispiel für eine Ausgabe als das Programm liest nun:
Please enter up to 20 grades and -1 when finished.
45
45
45
45
45
-1
You have entered 5 grades.
The highest score was 45.
The lowest score was -85679.
The average of all the scores was 45.
Die Anzahl der Noten in diesem Szenario sollten 5. Die höchste sein, und die niedrigste durchschnittliche sollten alle 45.
Ich würde vorschlagen, dass Sie Ihre Frage bearbeiten, um auch die Ausgabe eines Probenlaufs (z. B. von 5 Einträgen) einzuschließen. – clusterdude
Danke. Ich habe einen einfachen Testlauf gemacht. –