0

私は単語検索ソルバーをコーディングする任務を負っています。

このプログラムでは、グリッドのサイズ、グリッド内の文字、検索する単語の数、検索する単語をユーザーが決定します。

これが私が行った最も遠いところです。ここでは、単語を入力してすぐに検索することにしました。

#include <stdio.h>
#include <string.h>
int main()
{
    int rows, cols; //for the size of grid
    int grid_row=0, grid_col=0; // rows/columns of grid
    int numsrch;    //# of words to look for

    printf("Enter grid size: ");
    scanf("%d %d", &rows, &cols);
    cols+=1;    //# of letters per line

    char grid[rows][cols];  //array for grid

    printf("Enter grid: \n");   
    for(grid_row=0; grid_row < rows; grid_row++) //where letters in grid are entered
    {
        scanf("%s", grid[grid_row]);

        strlwr(grid[grid_row]);
    }

    printf("Number of words to look for: ");
    scanf("%d", &numsrch); 

    int gridlookcol=0, gridlookrow=0;
    int ltrsrch=0; //to be used later when looking for a letter in the word that's being searched for
    char srch[cols]; //array for the word to be looked for
    char found[cols]; //array for matched letters
    for(grid_row=0; grid_row<numsrch; grid_row++)
    {
        strcpy(found,"");
        ltrsrch=0;
        scanf("%s", srch);
        strlwr(srch);
        for(gridlookrow=0;gridlookrow<rows;gridlookrow++)
        {
  if(strstr(grid[gridlookrow], srch) || strstr(grid[gridlookrow],strrev(srch)))
    {
                printf("%s begins at row %d\n", srch, gridlookrow + 1);
                break;
            }   

        }


    }
return 0;
}   

したがって、上記のコードでは、単語を水平方向に右側に一致させることに成功しています。しかし、まだ 7 つの方向が残っています (上、下、左、右上、左上、左下、右下)。方向ごとに for ループをコーディングする必要がありますか?

4

0 に答える 0