簡單的幾個統計函數:求平均、最大值、最小值、RMS

在C-Free 5.0,mingw5編譯器運行通過。

sigma=40.000000
mean=2.500000
max=4.000000
min=1.000000
rms=2.738613
請按任意鍵繼續. . .

/* sig.c - 2019-10-09 */

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

double sigma(double* vector, int length)
{
    int i;
    double sum = 0;
    double ret = 0;
    for(i=0;i<length;i++)
    {
        sum = sum + vector[i];
    }
    ret = sum;
    return ret;
}

double mean(double* vector, int length)
{
    double sum = 0;
    double ret = 0;
    sum = sigma(vector,length);
    ret = sum / length;
    return ret;
}

double max(double* vector, int length)
{
    int i;
    double ret;
    ret = vector[0];
    for(i=0;i<length;i++)
    {
        if(ret<vector[i])
            ret = vector[i];
    }
    return ret;
}

double min(double* vector, int length)
{
    int i;
    double ret;
    ret = vector[0];
    for(i=0;i<length;i++)
    {
        if(ret>vector[i])
            ret = vector[i];
    }
    return ret;
}

double rms(double* vector, int length)
{
    int i;
    double pow;
    double sum = 0;
    double ret = 0;
    for(i=0;i<length;i++)
    {
        pow = vector[i] * vector[i] / length;
        sum = sum + pow;
    }
    ret = sqrt(sum);
    return ret;
}

int main()
{
    double vector[16] = {1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4};
    printf("sigma=%f\n",sigma(vector,16));
    printf("mean=%f\n",mean(vector,16));
    printf("max=%f\n",max(vector,16));
    printf("min=%f\n",min(vector,16));
    printf("rms=%f\n",rms(vector,16));
    return 0;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章