2009年7月29日水曜日

最大値 (maximum)と最小値 (minimum)

C言語での実装

#include <stdio.h>

/* ---------------------------------------------
  最大値を求める
  引数1: a 入力配列
  引数2: n 配列の要素数
  戻り値 最大値
 ---------------------------------------------*/
double max(const double *a, int n)
{
    int i;
    double max;

    if ( n < 1 ) return 0.0;

    max = a[0];
    for (i = 1; i < n; i++) {
        if ( max < a[i] ) max = a[i];
    }

    return max;
}


/* ---------------------------------------------
  最小値を求める
  引数1: a 入力配列
  引数2: n 配列の要素数
  戻り値 最小値
 ---------------------------------------------*/
double min(const double *a, int n)
{
    int i;
    double min;

    if ( n < 1 ) return 0.0;

    min = a[0];
    for (i = 1; i < n; i++) {
        if ( min > a[i] ) min = a[i];
    }

    return min;
}

/* main */
int main(void)
{
    double numbers[] = {1.0, 2.0, 3.0};
    double max_val, min_val;

    max_val = max(numbers, 3);
    min_val = min(numbers, 3);
    printf("最大値:%f\n", max_val);
    printf("最小値:%f\n", min_val);

    return 0;
}
実行例
最大値:3.000000
最小値:1.000000

0 件のコメント:

コメントを投稿