我正在尝试编写一个程序来使用不同的函数接受和显示一个数组,但我无法打印该数组
I'm trying to write a program to accept and display an array using diffrent functions, but I'm unable to print the array
我记下的代码:
#include<stdio.h>
#include<stdlib.h>
void get()
{
int i,a[50],limit;
printf("enter the limit:");
scanf("%d",&limit);
printf("enter the array");
for(i=0;i<limit;i++)
{
scanf("%d",&a[i]);
}
}
void display()
{
int i,a[50],limit;
printf("the array is");
for(i=0;i<limit;i++)
{
printf("%d\t",a[i]);
}
}
int main(void)
{
int i,a[50],limit;
get();
display();
}
输出:
enter the limit:5
enter the array1
2
3
4
5
the array is1 2 3 4 5 7143534 7209061 7536756 6488156 7077985 2949228 7471201 3019901633014777 7864421 101 0 0 -707682512 32767 -317320272 573 -690587167 32767 -317320288 573 -317325312 573 47 064 0 0 0 4 0 0 0-317325312 573 -690580068 32767 -31732531573 2 0 47 0 64 51 -1799357088 125 961877721 32758 3 32758 961957944 32758 -317168624 573 -706746576 32767
当您在每个函数中声明 int i,a[50],limit;
时,这些变量是函数的 local。
例如 get
中声明的 limit
变量与 set
中声明的 limit
变量完全无关等等。它们只是碰巧具有相同的名称。
您需要将这些变量声明为全局变量(糟糕的设计),或者以不同的方式重新设计您的代码,例如将这些变量作为参数传递。
所有这些都在您的初学者 C 教科书的第一章中进行了解释。
使用全局变量的示例(糟糕的设计)
#include <stdio.h>
#include <stdlib.h>
int i, a[50], limit; // global variables visible
// from all functions
void get()
{
printf("enter the limit:");
scanf("%d", &limit);
printf("enter the array");
for (i = 0; i < limit; i++)
{
scanf("%d", &a[i]);
}
}
void display()
{
printf("the array is");
for (i = 0; i < limit; i++)
{
printf("%d\t", a[i]);
}
}
int main(void)
{
get();
display();
}
我记下的代码:
#include<stdio.h>
#include<stdlib.h>
void get()
{
int i,a[50],limit;
printf("enter the limit:");
scanf("%d",&limit);
printf("enter the array");
for(i=0;i<limit;i++)
{
scanf("%d",&a[i]);
}
}
void display()
{
int i,a[50],limit;
printf("the array is");
for(i=0;i<limit;i++)
{
printf("%d\t",a[i]);
}
}
int main(void)
{
int i,a[50],limit;
get();
display();
}
输出:
enter the limit:5
enter the array1
2
3
4
5
the array is1 2 3 4 5 7143534 7209061 7536756 6488156 7077985 2949228 7471201 3019901633014777 7864421 101 0 0 -707682512 32767 -317320272 573 -690587167 32767 -317320288 573 -317325312 573 47 064 0 0 0 4 0 0 0-317325312 573 -690580068 32767 -31732531573 2 0 47 0 64 51 -1799357088 125 961877721 32758 3 32758 961957944 32758 -317168624 573 -706746576 32767
当您在每个函数中声明 int i,a[50],limit;
时,这些变量是函数的 local。
例如 get
中声明的 limit
变量与 set
中声明的 limit
变量完全无关等等。它们只是碰巧具有相同的名称。
您需要将这些变量声明为全局变量(糟糕的设计),或者以不同的方式重新设计您的代码,例如将这些变量作为参数传递。
所有这些都在您的初学者 C 教科书的第一章中进行了解释。
使用全局变量的示例(糟糕的设计)
#include <stdio.h>
#include <stdlib.h>
int i, a[50], limit; // global variables visible
// from all functions
void get()
{
printf("enter the limit:");
scanf("%d", &limit);
printf("enter the array");
for (i = 0; i < limit; i++)
{
scanf("%d", &a[i]);
}
}
void display()
{
printf("the array is");
for (i = 0; i < limit; i++)
{
printf("%d\t", a[i]);
}
}
int main(void)
{
get();
display();
}