用scanf输入数组3个数后,结果不输出?

问题遇到的现象和发生背景

编写C语言的时候,把数组名作为函数参数

问题相关代码,请勿粘贴截图

#include<stdio.h>
int szcj(int s[],int n)
{
int cj=1;
int i;
for(i=0;i<n-1;i++)
cj=cj*s[i];

return cj;

}
void main()
{
int a[3],i;
printf("请输入3个数:");
for(i=0;i<=2;i++)
scanf("%d",a[i]);

printf("其乘积为:%d",szcj(a,3));
    

}

运行结果及报错内容

没有运行 printf("其乘积为:%d",szcj(a,3));

img

我的解答思路和尝试过的方法
我想要达到的结果

我想知道为什么?怎么让 printf("其乘积为:%d",szcj(a,3));运行出结果

scanf("%d",a[i]); 改为“scanf("%d", &a[i]);”

#include<stdio.h>
int szcj(int s[], int n)
{
    int cj = 1;
    int i;
    for (i = 0; i <= n - 1; i++)
        cj = cj * s[i];

    return cj;
}
void main()
{
    int a[3], i;
    printf("请输入3个数:");
    for (i = 0; i <= 2; i++)
        scanf("%d", &a[i]);

    printf("其乘积为:%d", szcj(a, 3));

}

效果:

img

scanf("%d",a[i])的a[i]前加&,我用的visual studio2017里面有scanf不安全,要用scanf_s的错误