2020年3月20日 星期五

2.1-Computes the average and standard deviation

程式碼:
解法一:
#include <iostream>
#include <vector>
#include <cmath>
using namespace std;

int main()
{
 int n;
 double total = 0, m, sd = 0, num;
 vector<double> si;
 while (cin >> n)
 {
  total = sd = 0;
  for (int i = 0; i < n; i++)
  {
   cin >> num;
   si.push_back(num);
   total += num;
  }
  m = total / n;
  cout << "Average:" << m;
  for (int i = 0; i < n; i++)
  {
   sd += pow((si[i] - m), 2);
  }
  sd = sqrt(sd / n);
  cout << "\t" << "Standard deviation:" << sd << endl;
  si.clear();
 }


 return 0;
}

解法二
#include <iostream>
#include <cmath>
using namespace std;

int main()
{
    int n;
    while(cin>>n)
    {
        double *arr=new double[n];
        double average=0,deviation=0;
        for(int i=0;i<n;i++)
        {
            cin>>arr[i];     
            average+=arr[i];
        }
        average/=n;
        for(int i=0;i<n;i++)
        {
            deviation+=(arr[i]-average)*(arr[i]-average);
        }
        deviation=sqrt(deviation/n);
        cout << "Average:" << average << "\t" << "Standard deviation:" << deviation << endl;
    }
    return 0;
}

沒有留言:

張貼留言