求用c++解决数组相关的问题

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

在由n个整数元素组成的数组中,计算偶数的数组元素的乘积

问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

int calc(const vector<int> &vec)
{
    int num = 1;
    bool flag = false;
    for (int i = 0; i < vec.size(); ++i) {
        if (vec[i] % 2 == 0) {
            num *= vec[i];
            flag = true;
        }
    }
    return flag ? num : 0;
}

不考虑负数和溢出

#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;
int fun(int a[],int n);
int main(){
    int n;
    cout << "请输入n:\n";
    cin >> n;
    int a[n];
    cout << "请输入n个数:\n";
    for(int i = 0;i < n;i++){
        cin >> a[i];
    }
    printf("%d",fun(a,n));
}

int fun(int a[],int n){
    int res = 1;
    int falg = 0;
    for(int i = 0;i < n;i++){
        if(a[i] % 2 == 0){
            falg = 1;
            res *= a[i];
        }
    }
    return falg == 1?res:0;
}

这个采用一个循环加一个判断偶数的的语句即可实现