Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用c语言在二维数组中写入值_C_Arrays - Fatal编程技术网

用c语言在二维数组中写入值

用c语言在二维数组中写入值,c,arrays,C,Arrays,作为C和这个网站的新手,我不熟悉我遇到的这个问题。我有一个包含[8][8]个元素的二维数组。我试图让用户在数组中输入数字,直到完成为止。这个项目还远未结束,但我还没来得及继续,就被这个问题困住了。基本上,我使用for循环让用户输入每个元素。但是,当第一行完成时,它会将最后一个值覆盖到第一列第二行元素点上。如何防止这种情况发生:以下是我的代码: #include <stdio.h> #include <string.h> int Check_rules(); void

作为C和这个网站的新手,我不熟悉我遇到的这个问题。我有一个包含[8][8]个元素的二维数组。我试图让用户在数组中输入数字,直到完成为止。这个项目还远未结束,但我还没来得及继续,就被这个问题困住了。基本上,我使用for循环让用户输入每个元素。但是,当第一行完成时,它会将最后一个值覆盖到第一列第二行元素点上。如何防止这种情况发生:以下是我的代码:

#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;
}
#包括
#包括
int Check_rules();
无效打印_数组(整数数组[][8],整数大小)
{
int i,j;

对于(i=0;i所有
的地方,请共享您的实际代码。这至少有一个语法错误。(请修复您的代码缩进!)
i
i
抱歉,我现在更新了。哦,我明白了。谢谢您的评论!我会尝试的out@Nack太好了!那就接受这个答案吧。当然!谢谢!
#include <stdio.h>
#include <string.h>

void printArray(int size, int array[][size]) {
    for (int i = 0; i < size; i++) {
        printf("\n");
        for (int j = 0; j < size; j++) {
            printf("%d ", array[i][j]);
        }
    } 
    printf("\n\n");
}

int main() {
    int size = 8;
    int fullArray[size][size];

    for (int i = 0; i < size; i++) {
        for (int j = 0; j < size; j++) {
            fullArray[i][j] = 0;
        }
    } 

    printf("Enter values in row 1 column 1, and we will work our way from there. Here's the playing board. \n\n");

    printArray(size, fullArray);

    for (int i = 0; i < size; i++) {
        for (int j = 0; j < size; j++) {
            printf("Enter first value (press 0 and ENTER to skip a box, or -1 to cancel game): ");

            int number;
            scanf("%d", &number);
            if(number == -1) {
                return 0;
            }

            fullArray[i][j] = number;
            printArray(size, fullArray);
        }
    }

    return 0;
}