#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
// データ数
#define N 10
// データ生成関数
void createData(int data[N])
{
// ループ変数
int idx = 0;
// 乱数のシード初期化
// ループでN個分乱数データを作成
for(idx = 0; idx < N; idx++)
{
// データに乱数値を設定
data
[idx
] = rand() % 100; }
}
// 最大を取得
int max(int data[N])
{
// 最大(最初のデータを初期値に設定)
int m = data[0];
// ループ変数
int idx = 1;
// ループでデータと比較をして最大を求める
for(; idx < N; idx++)
{
// 最大と比較して大きい場合最大データを置き換える
if(m < data[idx])
{
m = data[idx];
}
}
// 最大を返却
return m;
}
// 最小を取得
int min(int data[N])
{
// 最小(最初のデータを初期値に設定)
int m = data[0];
// ループ変数
int idx = 0;
// ループでデータと比較をして最小を求める
for(; idx < N; idx++)
{
// 最小と比較して小さい場合最小データを置き換える
if(m > data[idx])
{
m = data[idx];
}
}
// 最小を返却
return m;
}
// 平均を取得
double avg(int data[N])
{
// 合計
int sum = 0;
// ループ変数
int idx = 0;
// 平均
double a = 0.0;
// ループでデータの合計を求める
for(; idx < N; idx++)
{
// 合計にデータを加算
sum += data[idx];
}
// データの合計をデータ数で割って平均を求める
a = (double)sum / N;
// 平均を返却
return a;
}
// 標準偏差を取得
double std(int data[N])
{
// ループ変数
int idx = 0;
// 平均
double a = avg(data);
// 分散
double sigma = 0.0;
// 標準偏差
double s = 0.0;
// ループで分散を求める
for(; idx < N; idx++)
{
// (xi - avg)^2を加算
sigma
+= pow((double)data
[idx
] - a
, 2.0); }
sigma /= N;
// 分散の平方根を標準偏差として計算
// 標準偏差を返却
return s;
}
// メイン関数
int main()
{
// ループ変数
int idx = 0;
// データ
int data[N] = {0};
// データ生成
createData(data);
// 生成したデータを表示
for(idx = 0; idx < N; idx++)
{
}
// 最大
int iMax = max(data);
// 最小
int iMin = min(data);
// 平均
double dAvg = avg(data);
// 標準偏差
double dStd = std(data);
// 各データを出力
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHRpbWUuaD4KI2luY2x1ZGUgPG1hdGguaD4KCi8vIOODh+ODvOOCv+aVsAojZGVmaW5lCU4JMTAKCi8vIOODh+ODvOOCv+eUn+aIkOmWouaVsAp2b2lkIGNyZWF0ZURhdGEoaW50IGRhdGFbTl0pCnsKCS8vIOODq+ODvOODl+WkieaVsAoJaW50IGlkeCA9IDA7CgkvLyDkubHmlbDjga7jgrfjg7zjg4nliJ3mnJ/ljJYKCXNyYW5kKCh1bnNpZ25lZCl0aW1lKE5VTEwpKTsKCS8vIOODq+ODvOODl+OBp07lgIvliIbkubHmlbDjg4fjg7zjgr/jgpLkvZzmiJAKCWZvcihpZHggPSAwOyBpZHggPCBOOyBpZHgrKykKCXsKCQkvLyDjg4fjg7zjgr/jgavkubHmlbDlgKTjgpLoqK3lrpoKCQlkYXRhW2lkeF0gPSByYW5kKCkgJSAxMDA7Cgl9Cn0KCi8vIOacgOWkp+OCkuWPluW+lwppbnQgbWF4KGludCBkYXRhW05dKQp7CgkvLyDmnIDlpKco5pyA5Yid44Gu44OH44O844K/44KS5Yid5pyf5YCk44Gr6Kit5a6aKQoJaW50IG0gPSBkYXRhWzBdOwoJLy8g44Or44O844OX5aSJ5pWwCglpbnQgaWR4ID0gMTsKCS8vIOODq+ODvOODl+OBp+ODh+ODvOOCv+OBqOavlOi8g+OCkuOBl+OBpuacgOWkp+OCkuaxguOCgeOCiwoJZm9yKDsgaWR4IDwgTjsgaWR4KyspCgl7CgkJLy8g5pyA5aSn44Go5q+U6LyD44GX44Gm5aSn44GN44GE5aC05ZCI5pyA5aSn44OH44O844K/44KS572u44GN5o+b44GI44KLCgkJaWYobSA8IGRhdGFbaWR4XSkKCQl7CgkJCW0gPSBkYXRhW2lkeF07CgkJfQoJfQoJLy8g5pyA5aSn44KS6L+U5Y20CglyZXR1cm4gbTsKfQoKLy8g5pyA5bCP44KS5Y+W5b6XCmludCBtaW4oaW50IGRhdGFbTl0pCnsKCS8vIOacgOWwjyjmnIDliJ3jga7jg4fjg7zjgr/jgpLliJ3mnJ/lgKTjgavoqK3lrpopCglpbnQgbSA9IGRhdGFbMF07CgkvLyDjg6vjg7zjg5flpInmlbAKCWludCBpZHggPSAwOwoJLy8g44Or44O844OX44Gn44OH44O844K/44Go5q+U6LyD44KS44GX44Gm5pyA5bCP44KS5rGC44KB44KLCglmb3IoOyBpZHggPCBOOyBpZHgrKykKCXsKCQkvLyDmnIDlsI/jgajmr5TovIPjgZfjgablsI/jgZXjgYTloLTlkIjmnIDlsI/jg4fjg7zjgr/jgpLnva7jgY3mj5vjgYjjgosKCQlpZihtID4gZGF0YVtpZHhdKQoJCXsKCQkJbSA9IGRhdGFbaWR4XTsKCQl9Cgl9CgkvLyDmnIDlsI/jgpLov5TljbQKCXJldHVybiBtOwp9CgovLyDlubPlnYfjgpLlj5blvpcKZG91YmxlIGF2ZyhpbnQgZGF0YVtOXSkKewoJLy8g5ZCI6KiICglpbnQgc3VtID0gMDsKCS8vIOODq+ODvOODl+WkieaVsAoJaW50IGlkeCA9IDA7CgkvLyDlubPlnYcKCWRvdWJsZSBhID0gMC4wOwoJLy8g44Or44O844OX44Gn44OH44O844K/44Gu5ZCI6KiI44KS5rGC44KB44KLCglmb3IoOyBpZHggPCBOOyBpZHgrKykKCXsKCQkvLyDlkIjoqIjjgavjg4fjg7zjgr/jgpLliqDnrpcKCQlzdW0gKz0gZGF0YVtpZHhdOwoJfQoJLy8g44OH44O844K/44Gu5ZCI6KiI44KS44OH44O844K/5pWw44Gn5Ymy44Gj44Gm5bmz5Z2H44KS5rGC44KB44KLCglhID0gKGRvdWJsZSlzdW0gLyBOOwoJLy8g5bmz5Z2H44KS6L+U5Y20CglyZXR1cm4gYTsKfQoKLy8g5qiZ5rqW5YGP5beu44KS5Y+W5b6XCmRvdWJsZSBzdGQoaW50IGRhdGFbTl0pCnsKCS8vIOODq+ODvOODl+WkieaVsAoJaW50IGlkeCA9IDA7CgkvLyDlubPlnYcKCWRvdWJsZSBhID0gYXZnKGRhdGEpOwoJLy8g5YiG5pWjCglkb3VibGUgc2lnbWEgPSAwLjA7CgkvLyDmqJnmupblgY/lt64KCWRvdWJsZSBzID0gMC4wOwoJLy8g44Or44O844OX44Gn5YiG5pWj44KS5rGC44KB44KLCglmb3IoOyBpZHggPCBOOyBpZHgrKykKCXsKCQkvLyAoeGkgLSBhdmcpXjLjgpLliqDnrpcKCQlzaWdtYSArPSBwb3coKGRvdWJsZSlkYXRhW2lkeF0gLSBhLCAyLjApOwoJfQoJc2lnbWEgLz0gTjsKCS8vIOWIhuaVo+OBruW5s+aWueagueOCkuaomea6luWBj+W3ruOBqOOBl+OBpuioiOeulwoJcyA9IHNxcnQoc2lnbWEpOwoJLy8g5qiZ5rqW5YGP5beu44KS6L+U5Y20CglyZXR1cm4gczsKfQoKLy8g44Oh44Kk44Oz6Zai5pWwCmludCBtYWluKCkKewoJLy8g44Or44O844OX5aSJ5pWwCglpbnQgaWR4ID0gMDsKCS8vIOODh+ODvOOCvwoJaW50IGRhdGFbTl0gPSB7MH07CgkvLyDjg4fjg7zjgr/nlJ/miJAKCWNyZWF0ZURhdGEoZGF0YSk7CgkvLyDnlJ/miJDjgZfjgZ/jg4fjg7zjgr/jgpLooajnpLoKCWZvcihpZHggPSAwOyBpZHggPCBOOyBpZHgrKykKCXsKCQlwcmludGYoIiVkICIsIGRhdGFbaWR4XSk7Cgl9CglwcmludGYoIlxuIik7CgkKCS8vIOacgOWkpwoJaW50IGlNYXggPSBtYXgoZGF0YSk7CgkvLyDmnIDlsI8KCWludCBpTWluID0gbWluKGRhdGEpOwoJLy8g5bmz5Z2HCglkb3VibGUgZEF2ZyA9IGF2ZyhkYXRhKTsKCS8vIOaomea6luWBj+W3rgoJZG91YmxlIGRTdGQgPSBzdGQoZGF0YSk7CgkvLyDlkITjg4fjg7zjgr/jgpLlh7rlipsKCXByaW50Zigi5pyA5aSn44CA44CA77yaJWRcbiIsIGlNYXgpOwoJcHJpbnRmKCLmnIDlsI/jgIDjgIDvvJolZFxuIiwgaU1pbik7CglwcmludGYoIuW5s+Wdh+OAgOOAgO+8miVsZlxuIiwgZEF2Zyk7CglwcmludGYoIuaomea6luWBj+W3ru+8miVsZlxuIiwgZFN0ZCk7CgkKCXJldHVybiAwOwp9Cg==