为什么我的数组没有跟随函数的调用而改变


#include <math.h>
#include <stdio.h>
#pragma warning(disable:4996)
int f[1000];
int g[1000];
int y[1000];
int z[1000];
int  t;
int main()
{
    int a; int j;int t;
    int r=0;
    t = 0;
    void facsum(int);
    scanf("%d",&a); 
    facsum(a);
    for (j = 0; j <= t; j++) { r = r + f[j]; }
    for(int k=0;k<=t;k++)
    printf("%d,",f[k]);
    printf("和为%d",r); 
} 
void facsum(int a)
{
    int j;
    t = 0;
    for (j = 1; j < a; j++)
    {
        if (a % j == 0) { f[t] = j; t++; }
    }
}

t声明了两边,去掉main函数里面的int t;