0
xがユーザによって決まる9×9数独四角形で空白のx%の数を生成するプログラムを考え出す必要があります。正方形に印刷される数字は、あらかじめ決められており、問題に固定されています。数独四角形のランダムな空のボックスを生成する
私はそれを行うためのコードを考え出しましたが、問題は全く機能しないということです。私の考えは、ランダムな列とランダムな列の2つの異なる配列を作成することです。ここで
は私のコードです:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int column_random [81], row_random [81], n = 3, k, j, input, number;
char check = '0';
printf("Enter percentage of empty squares: ");
scanf("%d", &input);
srand (time (NULL));
number = (input * 81)/100 ;
for (k = 0; k < number; k++)
{
row_random [k] = rand() % 9 ;
column_random [k] = rand() % 9 ;
for (j = 0; j < k; j++)
{
if (row_random [j] == row_random [k] && column_random [j] == column_random [k])
{
row_random [k] = rand() % 9 ;
column_random [k] = rand() % 9 ;
j = 0;
}
}
}
for (int i = 0; i < n*n; i++)
{
for (int j = 0; j < n*n; j++)
{
for (k = 0; k < number; k++)
{
check = '0';
if (j == column_random [k] && i == row_random [k])
{
check = '1';
break;
}
else
{
check = '0';
}
}
if (check == '1')
{
printf(" ");
}
else
{
printf("%d ",(i*n + i/n + j) % (n*n) + 1);
}
}
printf("\n");
}
return 0;
}
誰もが私のコードで間違って何を教えてもらえますか?または私のアイデア/コンセプトが間違っていれば? ありがとう!
ありがとうございました!あなたの提案でコードを編集しました。私は100%を入力しても、それは常に1つのエントリを生成するという事実を除いて、ほとんどの場合動作します。私は今回のコードで何が間違っているのか分かりません。 –
ああ、エラーが発見されました。 jは0の代わりに-1にする必要があります。 –