请问大家为什么输入一个字母之后刷新的时候不会改变字母的值


#include <stdio.h>
#include <conio.h>
#include <time.h>
#include<stdlib.h>
#include<string.h>

#define ROW 26
#define COL 64
#define MAX 10
#define ROWSCORE 5
#define COLSCORE 5

typedef char Array[ROW][COL];
int p;

struct Zimu{
    int row;
    int col;
    char data;
};
Array x;
Zimu a;
void Init(Array a)
{
    memset(a, ' ', sizeof(Array));
    memset(a[0], '-', sizeof(char) * COL);
    memset(a[ROW-1], '-', sizeof(char) * COL);
    for (int j = 0; j < ROW; j++)
    {
        a[j][COL - 1] = '\0';
        a[j][COL - 2] = '\n';
    }
}

void Input(Array a,Zimu x)
{
    srand((unsigned int)time(NULL));
    x.data = rand() % 26 + 'a';
    x.row = 1;
    x.col = rand() % (COL - 2);
    a[x.row][x.col] = x.data;
}

void Output(Array x)
{
    for (int i = 0; i < ROW; i++)
        for (int j = 0; j < COL; j++)
        {
            printf("%c",x[i][j]);
        }
}

void Down_Array(Array &x,Zimu a)
{
    char c;
    c = _getch();
    if (a.data == c)
    {
        a.data = '\0';
        srand((unsigned int)time(NULL));
        a.data = rand() % 26 + 'a';
        a.row = 1;
        a.col = rand() % (COL - 2);
        x[a.row][a.col] = a.data;
    }
    system("cls");
    Output(x);
}

int main()
{
    a.data = '\0';
    Init(x);
    Input(x,a);
    Output(x);
    Down_Array(x, a);
    return 0;
}
 

你输入了哪个字符? 哪里不改变? 你的函数是传入了值参还是形参?