将数组传递给C中的多个函数

时间:2017-11-02 22:01:45

标签: c arrays

我写了一些代码,用多个函数显示字符(条形图)中的分数(数字)。我的代码编译没有错误,但似乎我的上一个函数无法访问我的数组。

我的上一个函数总是显示零,所以不是我的数组中的数字。 我再次编写代码并仍然存在同样的问题。

有人可以帮我解决问题吗?

以下是我之前尝试的代码

#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();
}

1 个答案:

答案 0 :(得分:1)

您正在为函数ShowScores中的所有数组元素有效地分配0。

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

z = a[i];

而不是

a[i] = z;