#/*********************************************************** # maxmin.rb -- 最大値・最小値 #***********************************************************/ def max2(x, y); x > y ? x : y; end def min2(x, y); x < y ? x : y; end def findmax(n, a) max = a[0] for i in 1...n if (a[i] > max); max = a[i]; end end return max end def findmin(n, a) min = a[0] for i in 1...n if (a[i] < min); min = a[i]; end end return min end def findmaxmin(n, a) if (n & 1 == 1); max = min = a[0] elsif (a[0] > a[1]); max = a[0]; min = a[1] else; max = a[1]; min = a[0] end i = 2 - (n & 1); while(i < n) a1 = a[i]; a2 = a[i + 1] if (a1 > a2) if (a1 > max); max = a1; end if (a2 < min); min = a2; end else if (a2 > max); max = a2; end if (a1 < min); min = a1; end end i += 2 end return max, min end def maxn(*a) # n 個の の最大値 a.max end a = [ 1, 7, 4 ] printf("max2(1, 7) = %d\n", max2(1, 7)) printf("min2(1, 7) = %d\n", min2(1, 7)) printf("a = [ 1, 7, 4 ]\n") printf("findmax(3, a) = %d\n", findmax(3, a)) printf("findmin(3, a) = %d\n", findmin(3, a)) max, min = findmaxmin(3, a) printf("max, min = findmaxmin(3, a)\n") printf("max = %d, min = %d\n", max, min) printf("maxn(1, 7, 4) = %d\n", maxn(1, 7, 4)) exit 0