<最大値や最小値の求め方>

 

 数値データの処理を行う際、しばしば最大値や最小値を求めることが必要になるケースに出くわします。数値の総和を求めるのと同様に、もっとも基本的なアルゴリズムの一つです。

 

 ループを回してすべての数値を比較していくわけですが、例えば最大値を求めるのであれば、「それぞれの値がその時点までの最大値より大きければ、その値を新しい最大値とする」という処理を繰り返せばよいことになります。

 

#include <stdio.h>

#define DATA_SIZE 10

int main(void) {

         int i, max;

         int data[DATA_SIZE]={3, 5, 0, 7, 6, 5, 8, 1, 2, 9};

 

         max = 0;        /* 最大値格納用の変数max0で初期化 */

         for (i = 0; i < DATA_SIZE; i++) {

                 if (data[i] > max) {   /* 配列要素の値がmaxより大きかったら */

                          max = data[i]; /* その値を新しい最大値としてmaxに格納 */

                 }

         }

         printf("max = %d\n", max);

         return 0;

}

 

 当然ですが、最大値(最小値)を入れる変数は、あらかじめ十分小さな(大きな)値で初期化しておく必要があります。

 

 

戻る