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

typedef struct {
    int id;
    double height;
    double weight;
} Body;

int main(void) {
    Body data[5] = {
        {1, 165.0, 60.0},
        {2, 170.0, 68.0},
        {3, 160.0, 50.0},
        {4, 180.0, 75.0},
        {5, 175.0, 80.0}
    };
    int n = 5;

    for (int i = 0; i < n - 1; i++) {
        for (int j = 0; j < n - 1 - i; j++) {
            if (data[j].height > data[j + 1].height) {
                Body temp = data[j];
                data[j] = data[j + 1];
                data[j + 1] = temp;
            }
        }
    }

    printf("身長の低い順に整列\n");
    for (int i = 0; i < n; i++) {
        printf("id:%d, height:%.0f, weight:%.0f\n", data[i].id, data[i].height, data[i].weight);
    }

    double sum = 0.0;
    for (int i = 2; i < 5; i++) {
        sum += data[i].height;
    }
    double ave = sum / 3.0;

    double var_sum = 0.0;
    for (int i = 2; i < 5; i++) {
        var_sum += (data[i].height - ave) * (data[i].height - ave);
    }
    double std = sqrt(var_sum / 3.0);

    printf("\n上位3名の平均値 ave = %.1f\n", ave);
    printf("上位3名の標準偏差 std = %.1f\n", std);

    return 0;
}
