このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1312201995/563
#  http://ime.nu/codepad.org/bsGYVXWW  
# 
#  #include 
#  #define student 4
#  #define score 3
#  int main(){
#          int i, j;
#          int a[student][score];
#          int num[3];
#          for(i=0; i < student; i++){
#                  for(j=0; j < score; j++){
#                          printf("学生%d 科目%d :", i+1, j+1);
#                          scanf("%d", &a[j][i]);
#                  }
#          }
#  
#          for(j=0; j < student; j++){
#                  num[j]=0;
#                  for(i=0; i < score; i++){
#                          num[j]=num[j]+a[student][score];
#                  }
#          }
#  
#          for(j=0; j < student; j++){
#                  for(i=0; i < score; i++){
#                          printf("学生%d 科目%d:%5.1f\n", i+1, i+1, num[i]/score);
#                  }
#          }
#          return 0;
#  }
#  
#  ここまでは出来たんだが、↓のように表示するにはどう加えればいいのですか? 
#  学生別平均 学生1:0.0 学生2:0.0 学生3:0.0 学生4:0.0  
#  科目別平均 科目1:0.0 科目2:0.0 科目3:0.0  
#   

'4名の学生別に3科目の成績を入力してその学生別平均と科目別平均を表示する' :-
        '4名の学生別に3科目の成績を入力して'(LL),
        'その学生別平均と'(LL,_学生別平均ならび),
        '科目別平均を'(LL,_科目別平均ならび),
        '表示する'(_学生別平均ならび,_科目別平均ならび).

'4名の学生別に3科目の成績を入力して'(LL) :-
        '4名の'(LL,4),
        findall(L,(
                    学生別に(LL,L),
                    '3科目の成績を入力する'(L)),
                LL).

'4名の'(LL) :-
        length(LL,4).

学生別に(LL,L) :-
        append(_,[L|_],LL).

'3科目の成績を入力する'(L) :-
        '3科目の'(L),
        findall(_成績,(
                    成績を(L,_成績),
                    入力する(_成績)),
                L).

'3科目の'(L) :-
        length(L,3).

成績を(L,_成績) :-
        append(_,[_成績|_],L).

入力する(_科目別成績) :-
        get_line(Line),
        入力検査(Line,_科目別成績),!.
入力する(_科目別成績) :-
        入力する(_科目別成績).

入力検査(Line,_科目別成績) :-
        atom_to_term(Line,_科目別成績,_),
        integer(_科目別成績),
        _科目別成績 >= 0,
        _科目別成績 =< 100,!.
入力検査(Line,_科目別成績) :-
        writef('入力された%tからは科目成績として適切な整数が得られませんでした。再入力をお願いします。\n',[Line]),
        fail.

'その学生別平均と'(LL,_学生別平均ならび) :-
        findall(_平均,(
                    append(_,[L|_],LL),
                    相加平均(L,_平均)),
                _学生別平均ならび).

'科目別平均を'(LL,_科目別平均ならび) :-
        転置(LL,LL1),
        findall(_平均,(
                    append(_,[L|_],LL1),
                    相加平均(L,_平均)),
                _科目別平均ならび).