1

そのため、バイナリ検索を使用して、配列内の単語の辞書内で特定の単語を見つけようとしています。現在、私の機能は次のようになっています。

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は、プログラムがどこまで到達しているかを確認するためのものです。現在、文字列比較で失敗していますが、その理由はわかりません。何か案は?

4

0 に答える 0