Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

โปรแกรม C คำนวณค่าเบี่ยงเบนมาตรฐาน (Standard Deviation)

สูตรคำนวณ Standard Deviation

Variance = (1/n) * Σ(xi - mean)²
Standard Deviation = √Variance
Mean = (1/n) * Σxi

อัลกอริทึม

  1. อ่านค่าจนกว่าจะได้ -1 (sentinel)
  2. คำนวณ Sum และ Mean
  3. คำนวณ Sum of Squared Deviations
  4. Variance = SumSq / n
  5. StdDev = sqrt(Variance)

โค้ด C

#include <math.h>
#define MAXSIZE 100

main() {
    int i, n;
    float value[MAXSIZE], deviation, sum, sumsqr, mean, variance, stddeviation;
    sum = sumsqr = n = 0;
    printf("Input values: input -1 to end \n");
    for (i = 1; i < MAXSIZE; i++) {
        scanf("%f", &value[i]);
        if (value[i] == -1) break;
        sum += value[i];
        n += 1;
    }
    mean = sum / (float)n;
    for (i = 1; i <= n; i++) {
        deviation = value[i] - mean;
        sumsqr += deviation * deviation;
    }
    variance = sumsqr / (float)n;
    stddeviation = sqrt(variance);
    printf("\nNumber of items : %d\n", n);
    printf("Mean : %f\n", mean);
    printf("Standard deviation : %f\n", stddeviation);
}

ตัวอย่าง Output

Input values: input -1 to end
2 4 6 8 12 4.5 6.7 0.3 2.4 -1
Number of items: 9
Mean: 5.100000
Standard deviation: 3.348300

หมายเหตุ: อาร์เรย์เริ่มดัชนี 1 (value[1]...value[n]) ตรงกับอัลกอริทึม