このディレクトリの索引
#  最大値の求め方について教えてください。 
#  配列の最大値を求めたくて 
#  下のプログラムを作ったのですが,うまく動作しません。 
#   
#  for( maa=1 , qxr = qxxr[0] ; maa < 10; maa++) { 
#  if( qxr < qxxr[maa] ) { 
#  qxr = qxxr[maa]; 
#  qxxxr = maa; 
#  } 
#  } 
#   
#  printf("最大のq*rは%dのとき%f\n",qxxxr,qxr); 
#   
#  最大のq*rは0のとき0 
#  と表示されるのですが間違っているところがわかれば教えてください。 
#  配列は下のような感じです. 
#   
#  qxxr[0]=40.800000 
#  qxxr[1]=41.600000 
#  qxxr[2]=0.000000 
#  qxxr[3]=0.000000 
#  qxxr[4]=40.000000 
#  qxxr[5]=0.000000 
#  qxxr[6]=0.000000 
#  qxxr[7]=40.000000 
#  qxxr[8]=0.000000 
#  qxxr[9]=0.000000  
# 
# 

最大値([A|R],_d,_最大値) :-
        最大値(R,0,A,0,_d,_最大値).

最大値([],_,_最大値,_d,_d,_最大値) :- !.
最大値([B|R],N,A,_,_d,_最大値) :-
        B > A,
        N2 is N + 1,
        最大値(R,N2,B,N,_d,_最大値).
最大値([_|R],N,A,_d_1,_d,_最大値) :-
        N2 is N + 1,
        最大値(R,N2,A,_d_1,_d,_最大値).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
最大値([A|R],_d,_最大値) :-
        最大値(R,A,0,_d,_最大値).

最大値([],_最大値,_d,_d,_最大値) :- !.
最大値([B|R],A,N,_,_d,_最大値) :-
        B > A,
        最大値(R,B,N1,_N,_d_最大値),
        N is N1 + 1,!.
最大値([_|R],A,N,_d_1,_d_最大値) :-
        最大値(R,A,N1,_d_1,_d,_最大値),
        N is N1 + 1.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

最大値([A|R],_d,_最大値) :-
        最大値(R,A,[],L,_最大値),
        length(L,_d).

最大値([],_最大値,L,L,_最大値) :- !.
最大値([B|R],A,L1,L,_最大値) :-
        B > A,
        最大値(R,B,[_|L1],L,_最大値),!.
最大値([_|R],A,L1,L,_最大値) :-
        最大値(R,A,[_|L1],L,_最大値).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

最大値([_最大値],0,_最大値) :- !.
最大値(L,_d,_最大値) :-
        append(L0,[_最大値|R],L),
        \+((member(A,L0),A > _最大値)),
        \+((member(B,R),B > _最大値)),
        length(L0,_d).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

最大値([_最大値],0,_最大値) :- !.
最大値(L,_d,_最大値) :-
        append(L0,[_最大値|R],L),
        最大値(L0,_最大値_0),
        _最大値 >= _最大値_0,
        最大値(R,_最大値_R),
        _最大値 >= _最大値_R,
        length(L0,_d).