ソースコードの説明.

写像

ヒストグラムとは0〜100点までの得点を10点幅で区切って(0〜9、10〜19、... 、90〜99、100の11ランク)、各ランクの度数分布(ヒストグラム)を求める。

度数を求める配列としてhist[0]〜hist[10]を用意する。hist[0]に0〜9点の度数、hist[1]に10〜19の度数、...を求めることにする。

ソースコード

源文件
/*
*-----------------------------
*   Histogram 写像
*-----------------------------
* Great by liang@Ryukyus
* Compiler : gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-48)
* Date : 07/01/2011
*/

#include <stdio.h>
#define num 20       /* 全体の数は20個 */

int main(void){
  int a[]={11,21,31,41,51,61,71,81,91,100,
	   1,15,24,36,48,52,67,72,82,10};
  int i, rank, hist[11];

  /*
    for(i=0; i<hist[11]; i++){
      hist[i]=0;
    } ゼロにリセットに間違い
  */

  for(i=0; i<=10; i++){
    hist[i] = 0;
  }

  for(i=0; i<num; i++){
    rank = a[i]/10;
    if(0 <= rank && rank <= 10)

	/*
	  for(i=0; i<=10; i++)
	  hist[i]++; まだ間違った
	*/
	hist[rank]++;
  }

  for(i=0; i<=10; i++){
    printf("%3d -- %3d\n", i*10,hist[i]);
  }
  return 0;
}

実行結果

  0 --   1
 10 --   3
 20 --   2
 30 --   2
 40 --   2
 50 --   2
 60 --   2
 70 --   2
 80 --   2
 90 --   1
100 --   1
Chapter1 @ 目録 @ HomeWork List @ 昭亮's Homepage