CとこのWebサイトで初めて、私はこの問題に慣れています。私は[8] [8]要素を持つ2次元配列を持っています。私は、ユーザーが完了するまで配列に数値を入力させようとしています。プログラムはまだ終わっていませんが、私が進む前にこの問題に取り組んでいます。基本的に私はユーザーが各要素を入力できるようにforループを使用します。ただし、最初の行が完了すると、最後の値が最初の列の2番目の行要素の上書きされます。どのように私はこれを防ぐことができます:ここに私のコードは次のとおりです。2次元配列の値を書き込む
#include <stdio.h>
#include <string.h>
int Check_rules();
void Print_Array(int array[][8], int size)
{
int i, j;
for (i = 0; i <= size; i++)
{
printf("\n");
for (j = 0; j <= size; j++)
{
printf("%d ",array[i][j]);
}
}
printf("\n\n");
}
int main()
{
int size = 8;
int i, j;
int fullArray[size][size];
int grid1[3][3];
int grid2[3][3];
int grid3[3][3];
int grid4[3][3];
int grid5[3][3];
int grid6[3][3];
int grid7[3][3];
int grid8[3][3];
int grid9[3][3];
for (i = 0; i <= size; i++)
{
for (j = 0; j <= size; j++)
fullArray[i][j] = 0;
}
printf("Want to play a game? Enter values 1-9 starting in row 1 column 1, \nand we will work our way from there. Here's the playing board.\nIt's Sudoku, so follow the rules of the game.\n\n");
for (i = 0; i <= size; i++)
{
printf("\n");
for (j = 0; j <= size; j++)
printf("%d ",fullArray[i][j]);
}
printf("\n\n");
int tmp;
char *keeper = (" ");//space for marker
for (i = 0; i <= size; i++)
{
for (j = 0; j <= size; j++)
{
printf("Enter first value(press 0 and ENTER to skip a box, \nand -1 to cancel game): ");
scanf("%d", &tmp);
if(tmp == -1)
return 0;
fullArray[i][j] = tmp;
Print_Array(fullArray,size);
}
}
return 0;
}
あなたがこれを実行すると、第2行の最初の列要素スポットを上書き1.あなたが行の最後の値を入力するとき、あなたが私の問題を参照してくださいよ?
実際のコードを共有してください。これには少なくとも1つの構文エラーがあります。 – smarx
'i <= size' -->' i <サイズ ' – BLUEPIXY
申し訳ありません、今すぐ更新しました – Nack