求各位更改一下扫雷的基础代码,我这个运行一直出错

#include <stdio.h>
#include <stdlib.h>
#define VISIBLE_SAFE    0
#define HIDDEN_SAFE     1
#define HIDDEN_MINE     2

#define SIZE              8

void initialise_field(int minefield[SIZE][SIZE]);
void print_debug_minefield(int minefield[SIZE][SIZE],int number,int array_row[number],int array_column[number]);

int main(void) {
    int minefield[SIZE][SIZE];
    int number;
    initialise_field(minefield);
    int array_row[SIZE];
    int array_column[SIZE];
    printf("Welcome to minesweeper!\n");
    printf("How many mines? ");
    scanf("%d\n",&number);[

    int row,column;
    printf("Enter pairs:\n");
    int i = 0;
    while (number > i) {
        scanf("%d %d\n",&row,&column);
        array_row[i] = row;
        array_column[i] = column;
        i++;
    }
    printf("Game Started\n");
    print_debug_minefield(minefield,i,&array_row[i],&array_column[i]);


    // TODO: Scan in commands to play the game until the game ends.
    // A game ends when the player wins, loses, or enters EOF (Ctrl+D).
    // You should display the minefield after each command has been processed.


    return 0;
}

void initialise_field(int minefield[SIZE][SIZE]) {
    int i = 0;
    while (i < SIZE) {
        int j = 0;
        while (j < SIZE) {
            minefield[i][j] = HIDDEN_SAFE;
            j++;
        }
        i++;
    }
}

void print_debug_minefield(int minefield[SIZE][SIZE],int number,int array_row[number],int array_column[number]) {
    int i = 0;
    while (i < SIZE) {
        int j = 0;
        while (j < SIZE) {
            int a = 0;
            if (i == array_row[a] && j == array_column[a]) {
                while (a < number){
                    printf("%d ",HIDDEN_MINE);
                    a++;
                }
            } else {
                printf("%d ",minefield[i][j]);
            }
            j++;
        }
        printf("\n");
        i++;
    }
}

运行起来这样就行了。
img

#include <stdio.h>
#include <stdlib.h>

#define VISIBLE_SAFE 0
#define HIDDEN_SAFE 1
#define HIDDEN_MINE 2
#define SIZE 8

typedef struct _point //雷的坐标
{
    int x; //列
    int y; //行
} Point;

void init_field(int minefield[][SIZE], Point point[], int number) 
{
    int i = 0;
    while (i < SIZE)
    {
        int j = 0;
        while (j < SIZE)
        {
            minefield[i][j] = HIDDEN_SAFE;
            j++;
        }
        i++;
    }
    //初始化的时候直接把雷得位置也写进去
    for (i = 0; i < number; i++)
    {
        if (point[i].y < SIZE && point[i].x < SIZE)
            minefield[point[i].y][point[i].x] = HIDDEN_MINE;
    }
}

//因为初始化的时候已经写入的雷的位置,直接输出就可以了。
void print_minefield(int minefield[][SIZE])
{
    int i = 0;
    while (i < SIZE)
    {
        int j = 0;
        while (j < SIZE)
        {
            printf("%d ", minefield[i][j]);
            j++;
        }
        i++;
        printf("\n");
    }
}

int main(void)
{
    int minefield[SIZE][SIZE];
    int number;
    printf("Welcome to minesweeper!\n");
    printf("How many mines? ");
    scanf("%d", &number); //scanf("%d\n", &number);

    Point point[SIZE];
    printf("Enter pairs:\n");
    int i = 0;
    while (number > i)
    {
        scanf("%d%d", &point[i].y, &point[i].x); //scanf("%d %d\n", &row, &column);
        i++;
    }

    init_field(minefield, point, number);

    printf("Game Started\n");
    print_minefield(minefield);

    return 0;
}