私は現在、Cを学んでいます。主にプロジェクトオイラーの例があります。インターネット上のいくつかのソースといくつかの自己書き込みコードのうち、 - (<!あなたはすでにそれを知っていない場合は、それをチェックアウト)再帰バックトラック数独ソルバー
、私は50数独を解決する必要がありCプログラムを作りました。私は[スコードの数] [列] [列]のような配列を定義しました。以下は解決関数です。
残念ながら、本当に何も出力し、この時点ではない、非常にイライラさせられるint solve(int puzzles[50][9][9], int sudokuNumber, int row, int col){
int nextNum = 1;
if (row == 8){
return 1;
}
if (puzzles[sudokuNumber][row][col]){
if (col == 8){
if (solve(puzzles, sudokuNumber, row+1, 0))
return 1;
}
else {
if (solve(puzzles, sudokuNumber, row, col+1))
return 1;
}
return 0;
}
for (; nextNum <= 9; nextNum++){
if (isValid(sudokuNumber, row, col, nextNum)){
puzzles[sudokuNumber][row][col] = nextNum;
if (col == 8){
if (solve(puzzles, sudokuNumber, row+1, 0))
return 1;
}
else {
if (solve(puzzles, sudokuNumber, row, col+1))
return 1;
}
}
}
}
...私は明白なダム間違っているのでしょうか? isValid
が有効な場合は1を返します。この関数は正しいです。
誰かがこれを見ていただければ本当に感謝します。
なぜ出力が期待されますか?あなたのコードには何も出力されません –
これはプロジェクトオイラー[問題96](https://projecteuler.net/problem=96)です。これはあなた自身の努力と研究によって解決されるべきです。なぜテキストファイルから一度に1つずつ読んで解決できるのか、なぜ50のパズルを3D配列に読み込むのですか?ソリューションスタックが必要になり、一度に50個すべてを読み込むと、不必要に複雑になります。 –
印刷用のスッド機能を作ってみてください。これは、われわれが理解するのに非常に時間がかかり、エラーを指摘しています。あなたの問題の点で特定してください。あなたは医者に行くことができないと言う*ちょっとsomethingsが間違っているが、私は何を知らない!私をチェックしてください。* –