このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1328276597/45
#  [1] 授業単元: 情報処理 
#  [2] 問題文(含コード&リンク): 
#   
#  (2) 3つのint型整数 n1, n2, n3を昇順( n1 < n2< n3 )に並べ替える関数 void sort3(int *n1, int *n2, int *n3)を作成せよ。  
#  この関数を用いて、main内で宣言された3つのint型整数 a1, a2, a3 の値を並べ替え 、その結果を表示するプログラムを作成せよ。  a1, a2, a3の初期値は、 a1=3, a2=1, a3=0とする。 
#   

'3つのint型整数 n1, n2, n3を昇順( n1 < n2< n3 )に並べ替える'(_n1,_n2,_n3,X,Y,Z) :-
        sort3(_n1,_n2,_n3,X,Y,Z).

sort3(X,Y,Z,X,Y,Z) :-
        X =< Y,
        Y =< Z,!.
sort3(X_1,Y_1,Z_1,X,Y,Z) :-
        X_1 > Y_1,
        sort3(Y_1,X_1,Z_1,X,Y,Z),!.
sort3(X_1,Y_1,Z_1,X,Y,Z) :-
        X_1 > Z_1,
        sort3(Z_1,Y_1,X_1,X,Y,Z),!.
sort3(X_1,Y_1,Z_1,X,Y,Z) :-
        Y_1 > Z_1,
        sort3(X_1,Z_1,Y_1,X,Y,Z).