我写了一些代码,用多个函数显示字符(条形图)中的分数(数字)。我的代码编译没有错误,但似乎我的上一个函数无法访问我的数组。
我的上一个函数总是显示零,所以不是我的数组中的数字。 我再次编写代码并仍然存在同样的问题。
有人可以帮我解决问题吗?
以下是我之前尝试的代码
#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();
}
答案 0 :(得分:1)
您正在为函数ShowScores
中的所有数组元素有效地分配0。
您输入的分数不会打印出来。你可能想写
z = a[i];
而不是
a[i] = z;