在C语言中将数组传递给多个函数

在C语言中将数组传递给多个函数,c,arrays,C,Arrays,我编写了一些代码,使用多个函数在charactersbar图中显示scoresnumbers。我的代码编译时没有错误,但我的上一个函数似乎无法访问我的数组 我的上一个函数总是显示零,所以数组中的数字不是零。 我又写了一次代码,但仍然是同一个问题 有人能帮我解决我的问题吗 下面是我以前尝试过的代码 #include <stdio.h> #define max 5 void ReadCharacter(char); void ReadArray(int[]); void ShowSc

我编写了一些代码,使用多个函数在charactersbar图中显示scoresnumbers。我的代码编译时没有错误,但我的上一个函数似乎无法访问我的数组

我的上一个函数总是显示零,所以数组中的数字不是零。 我又写了一次代码,但仍然是同一个问题

有人能帮我解决我的问题吗

下面是我以前尝试过的代码

#include <stdio.h>
#define max 5


void ReadCharacter(char);
void ReadArray(int[]);
void ShowScores(int[], char);

int main(void)
{
    char c;
    c = 'a';
    ReadCharacter(c);
    int a[max];
    ReadArray(a);
    ShowScores(a, c);
    getchar();
    return 0;   
}

void ReadCharacter(char c)/*read a character to show in the bar graph*/
{
    printf("geef een karakter in\n");

    scanf_s("%c%*c", &c);    
}

void ReadArray(int a[])/*read an array of scores*/
{
    int i = 0;
    while (i<max)
    {
        printf("geef een cijfer in\n");
        scanf_s("%d", &a[i]);
        i++;
    }
}

void ShowScores(int a[], char c)/*make a bar graph of each score with the given character*/
{
    int z = 0;
    for (int i = 0; i < max; i++)
    {

        a[i] = z;
        printf("\n %d heeft een score van: ",a[i]);
        for (int k = 0; k < z; k++)
        {
            printf("%c",c);
        }
    }
    getchar();
}

您将有效地为函数ShowScores中的所有数组元素指定0

您输入的分数不会打印出来。你可能想写

z = a[i];
而不是

a[i] = z;

在ReadCharacter函数中,变量c是函数内部的局部变量,当函数返回时,它将超出范围。scanf_s%c%*c,&c;->scanf_s%c%*c和c,sizeofc;你说我的数组似乎不能被上一个函数访问是什么意思?你能详细说明一下吗?我也推荐你。也许您应该这样做?您正在擦除数组的信息:a[i]=z;。你的意思是反过来做吗?z=a[i];。readcharacter的更好方案是让它返回readcharacter不敢相信我多次犯了这个错误。。。非常感谢。您需要编写cobol。在这里,你会说把A[I]移动到Z cobol程序员喜欢喊