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