そのため、バイナリ検索を使用して、配列内の単語の辞書内で特定の単語を見つけようとしています。現在、私の機能は次のようになっています。
void binsearch(char letters[], char changeletters[], char **dictionary[], int numwords){
printf("start binsearch\n");
int max = numwords;
int min = 0;
int mid;
int spot;
while (min <= max){
printf("start while in search\n");
mid = (min + max) / 2;
spot = strcmp(**dictionary[mid],changeletters);
printf("%d", spot);
if (spot == 0){
printf("word found\n");
printf("A permutation of %s that is a valid word is %s", letters, changeletters);
}
else if (spot < 0){
printf("word not found and word is lower\n");
min=spot+1;
}
else{
printf("word no found and word is higher\n");
max=spot-1;
}
}
if( max > min)
printf("Sorry, no permutations of %s form a word", letters);
}
ランダムprintfsは、プログラムがどこまで到達しているかを確認するためのものです。現在、文字列比較で失敗していますが、その理由はわかりません。何か案は?