宿題で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.00range is 8.00
ご面倒おかけしますが、たまにはクリックお願いします!