簡體   English   中英

數獨解算器輸入

[英]Sudoku Solver Input

我正在用C創建一個數獨求解器,無法獲取用戶輸入。 我編寫的代碼不會將數據輸入游戲板,但是如果我將Game_Buffer[counter]更改為Game_Buffer[i]它將僅輸入9個字符。 我知道為什么。 我只是想看看他們在其他領域是否存在問題。

我的主要問題是: 為什么我使用的方法沒有將用戶輸入數據放入游戲板陣列中?

#include <stdio.h>
#include <string.h>
#define CELL 81

int main()
{
    // Banner
    printf("\t\t\t\tSudoku Solver\n");
    printf("\t\t\t***************************\n");

    //initialize variables
    char Game_Board[9][9];
    int i,j;
    char Game_Buffer[CELL];
    int counter = 0;

    printf("Please enter the numbers of the board * denotes a blank space\n");
    fgets(Game_Buffer,CELL,stdin);

    for(i=0;i<strlen(Game_Buffer);i++)
        printf("%c", Game_Buffer[i]);

    while(counter < 81)
    {
        for(i=0; i<9; i++)
            for(j=0; j<9; j++)

                Game_Board [i][j] = Game_Buffer [counter];
                counter++;
    }

    printf("%d\n", counter);
    printf("\t\t\t\t The Board\n");

    for( i=0; i<9; i++)
        for( j=0; j<9; j++)
        {

            if( j % 3 == 0)
                printf("|");
            printf("%c", Game_Board[i][j]);
            if(j==8)
                printf("|\n");

        }

    return 0;
}

counter++在循環后執行。 我已經確定了代碼以顯示我的意思..

for(i=0; i<9; i++)
  for(j=0; j<9; j++)
    Game_Board [i][j] = Game_Buffer [counter];
counter++;

您正在更新具有相同值的所有單元格。

您可能應該首先使用方括號。

    for(i=0; i<9; i++)
    {
        for(j=0; j<9; j++)
        {
            Game_Board [i][j] = Game_Buffer [counter];
            counter++;
        }
    }

添加所有缺少的括號,然后檢查問題是否仍然存在。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM