このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1286978599/269
#  [1] 授業単元:C言語 
#  [2] 問題文(含コード&リンク):int main(void) 
#   
#                { 
#   
#              char word[101],boin[5]={'a','i','u','e','o'}; 
#               int i,count[5];  
#   
#               printf("アルファベットで文字列を入力してください>>>"); 
#               scanf("%s",word); 
#   
#               count[0]=0,count[1]=0,count[2]=0,count[3]=0,count[4]=0; 
#   
#               for(i=0; word[i]!='\0'; i++) 
#     
#              { 
#                 if(word[i]==boin[0]) {count[0]++;} if(word[i]==boin[1]) {count[1]++;} 
#              if(word[i]==boin[2]) {count[2]++;} if(word[i]==boin[3]) {count[3]++;} if(word[i]==boin[4]) {count[4]++;} 
#                      }  
#   
#                     printf(" a>>>%d\n i>>>%d\n u>>%d\n e>>>%d\n o>>>%d\n",count[0],count[1],count[2],count[3],count[4]); 
#   
#       return 0; 
#   
#         }  
#  アルファベット文字列の中から母音をカウントするプログラムなのですが、現在ソース中の配列は 
#  定数によって値が参照されています。これをboin[i] count[j]のように変数で値を参照するものに書き換えてください。 
#  [3]環境:linux コンパイラ:gcc  C言語 
#  [4] 期限:2010年10月19日10:00まで 
#  [5] その他の制限:変数で配列要素の値を参照するときfor文と組み合わせること。 
#  どうか、よろしくお願いします 
# 

母音([a,i,u,e,o]).

アルファベット文字列の中から母音をカウントする(_アルファベット文字列,_母音の数) :-
        母音(_母音ならび),
        findall(_,(
                    sub_atom(_アルファベット文字列,_,1,_,_文字),
                    member(_文字,_母音ならび)),
                L),
        length(L,_母音の数).