3つのデータの最大値と最小値

01	/**************************************/
02	/* 3つのデータの最大値と最小値の計算 */
03	/*      coded by Y.Suganuma           */
04	/**************************************/
05	#include <stdio.h>
06
07	int main()
08	{
09	/*
10	     データの入力
11	*/
12		double a, b, c;
13		printf("3つのデータを入力して下さい ");
14		scanf("%lf %lf %lf", &a, &b, &c);
15	/*
16	     a>bの場合
17	*/
18		double amin, amax;
19		if (a > b) {
20			if (c > a) {
21				amax = c;
22				amin = b;
23			}
24			else {
25				amax = a;
26				if (c < b)
27					amin = c;
28				else
29					amin = b;
30			}
31		}
32	/*
33	     a≦bの場合
34	*/
35		else {
36			if (c > b) {
37				amax = c;
38				amin = a;
39			}
40			else {
41				amax = b;
42				if (c < a)
43					amin = c;
44				else
45					amin = a;
46			}
47		}
48	/*
49	     出力
50	*/
51	printf("最大値=%f  最小値=%f\n", amax, amin);
52	
53		return 0;
54	}
		

  Java の場合と同様,データの数が増えた場合,上の方法は非常に面倒になります.以下のように書いた方がより一般的であり,また,理解し易いと思います.

#include <stdio.h>

int main()
{
/*
	 データの入力
*/
	double a, b, c;
	printf("3つのデータを入力して下さい ");
	scanf("%lf %lf %lf", &a, &b, &c);
/*
	 初期設定
*/
	double amax = a;
	double amin = a;
/*
	 残りの2つのデータと比較する
*/
	if (b > amax)
		amax = b;
	else {
		if (b < amin)
			amin = b;
	}

	if (c > amax)
		amax = c;
	else {
		if (c < amin)
			amin = c;
	}
/*
	 出力
*/
	printf("最大値=%f  最小値=%f\n", amax, amin);

	return 0;
}