C++で中央値と範囲を表すコードを書いてみた。

code-2620118_640

宿題でC++で中央値を表すコードを書いてこいとのことだったので書きました。範囲もあわせて書いたんですが、いささか消化不良です。。

#include <iostream>
#include <iostream>
#define DATA_NUM 20  // the number of data(データの数)
#define MAX_DATA  9  // the maximam of data(データの最大値)

int main()
{
int data[DATA_NUM] = { 1,2,4,9,8,1,2,9,4,3,
7,4,3,8,9,5,3,4,5,9 };
int i, j, tmp;
double med;  // median(中央値)
double renge;  // range(範囲)

i = 0;
j = 0;
tmp = 0;
med = 0;
renge = 0;  

 
for (i = 1; i < DATA_NUM; i++)
{
for (j = 0; j < DATA_NUM – i; j++)
{
if (data[j] > data[j + 1])
{
tmp = data[j];
data[j] = data[j + 1];
data[j + 1] = tmp;
}
}
}

if (DATA_NUM % 2 == 1)  
{
med = data[(DATA_NUM – 1) / 2];  
}
else  
{
med = (data[(DATA_NUM / 2) – 1] + data[DATA_NUM / 2]) / 2.0; 
}

renge = data[DATA_NUM – 1] – data[0] + 0.0;  

printf(“median is %0.2f\n”, med);
printf(“range is %0.2f\n”, renge);

return 0;
}

出力は以下の通りです。

median is 4.00
range is 8.00
やさしいC++ 第5版 (「やさしい」シリーズ)
高橋 麻奈
SBクリエイティブ
2017-06-14



ご面倒おかけしますが、たまにはクリックお願いします!

にほんブログ村 海外生活ブログ 海外移住へ
にほんブログ村

にほんブログ村 海外生活ブログへ
にほんブログ村