このディレクトリの索引
http://pc12.2ch.net/test/read.cgi/tech/1258158172/664
#  [1] C言語 
#  [2] 問題文(含コード&リンク): 
#  問題2 double型の配列とint型の引数を持ち, double型の戻値を持つ関 
#   数を考える。第一引数のdouble型の配列の要素数が第二引数で 
#   与えられるとして, 第一引数のdouble 型の配列に格納されてい 
#   る値のうち最大のものを戻値として返す関数 max_d_array() を 
#   作成し, 動作確認できるプログラムとして作成して rep08.c と 
#   して提出せよ。 
#     ただし, max_d_array() 内部ではいかなる関数も呼んではな 
#   らず, 制御構文としては while()文, if()文, return文のみを 
#   用いて実装しなければならない。do-while()文, for()文, 
#   switch-case文, goto文, 条件式(三項演算子?:)は使ってはなら 
#   ない。三項演算子以外の各種演算子と変数は自由に使って良い。 

max_d_list(L,N,Max) :- max_d_list([D|R],N,D,Max). 

max_d_list([],_,Max,Max) :- !. 
max_d_list(_,0,Max,Max) :- !. 
max_d_list([D|R],N,Max1,Max) :- 
  Max1 >= D, 
  N1 is N - 1, 
  max_d_list(R,N1,Max1,Max). 
max_d_list([D|R],N,Max1,Max) :- 
  Max1 < D, 
  N1 is N - 1, 
  max_d_list(R,N1,D,Max).