Μια άσκηση με υπολογισμούς πινάκων στη 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.

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

Αναζήτηση στο google.com για παρόμοια θέματα

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

Αν επιθυμείτε μπορείτε να κάνετε μια δωρεά στον ιστότοπο