Μια άσκηση με υπολογισμούς πινάκων στη C++

Να γραφεί ένα πρόγραμμα που να λαμβάνει Ν αριθμούς από το STDIN (το πολύ 5000) και να υπολογίζει το άθροισμα, το μέσο, τη διακύμανση και την τυπική απόκλιση.

Μια πιθανή λύση είναι:

#include <iostream>
#include <stdio.h>
#include <math.h>

#define NMAX 5000

using namespace std;

int main()
{
    double sum=0, ave, var=0, std;
    double x[NMAX];
    int N, i = 0;
    
    while (cin >> x[i])
    {
        i++;
    } 
    N = i;
    
    for (i=0; i < N; i++)
    {
        sum += x[i];
    }
    cout << "End of input " << endl;
    ave = sum / N;
    
    for (i=0; i < N; i++)
    {
        var += (x[i]-ave) * (x[i]-ave);
    }
    var = var / (N-1);
    std  = sqrt(var);

    printf("Sum = %.6lf\n", sum);
    printf("Ave = %.6lf\n", ave);
    printf("Var = %.6lf\n", var);
    printf("Std = %.6lf\n", std);
          
    return 0;
}

Μεταγλώττιση και δοκιμαστική εκτέλεση:

2.0
1.7
4.5
3.2
1.1
End of input 
Sum = 12.500000
Ave = 2.500000
Var = 1.835000
Std = 1.354622

Τερματισμός εισόδου δεδομένων με CTRL-D.

Συνδεθείτε για περισσότερες δυνατότητες αλληλεπίδρασης,
σχολιασμοί, εξωτερικοί σύνδεσμοι, βοήθεια, ψηφοφορίες, αρχεία, κτλ.

Creative Commons License
Εκπαιδευτικό υλικό από τον Αθανάσιο Σταυρακούδη σας παρέχετε κάτω από την άδεια Creative Commons Attribution-NonCommercial-ShareAlike 4.0 License.
Σας παρακαλώ να ενημερωθείτε για κάποιους επιπλέον περιορισμούς
http://stavrakoudis.econ.uoi.gr/stavrakoudis/?iid=401.