关于#c语言#的问题,请各位专家解答!

```c

#include <stdio.h>
void fac(int n)
{ int i,a[n];
for(i=0;i<n;i++)
printf("%d ",a[i]);
return a[n];
}
void fac1(int n)
{ int i,a[n];
for(i=0;i<n;i++)
scanf("%d",&a[i]);
}
main()
{ printf("请输入:");
fac1(10);
fac(10);
}
```为什么可以输入数组,但是却不能输出数组。

这样就行了

#include <stdio.h>
void fac(int a[], int n)
{
    int i;
    for (i = 0; i < n; i++)
        printf("%d ", a[i]);
}
void fac1(int a[], int n)
{
    int i;
    for (i = 0; i < n; i++)
        scanf("%d", &a[i]);
}
int main()
{
    int a[10];
    printf("请输入:");
    fac1(a, 10);
    fac(a, 10);
    return 0;
}

因为fac函数里内部定义的a数组和fac1定义的a数组完全是两个东西啊。
如下修改:

#include <stdio.h>
void fac(int a[],int n)
{ int i;
for(i=0;i<n;i++)
printf("%d ",a[i]);
return a[n];
}
void fac1(int a[],int n)
{ int i;
for(i=0;i<n;i++)
scanf("%d",&a[i]);
}
void  main()
{ printf("请输入:");
 int a[10];
fac1(a,10);
fac(a,10);
}