c语音编写 不会来人啊大帮看看

1.某数组的元素的值分别为:12, 7,13,-6,-14,0,-1,-4, 9, -14, 编写
程序,功能包括:
定义一个数组并初始化;
遍历数组将每一个元素打印出来;
将数组中小于等于 0 的元素打印出来;
2.编写一个子函数,能实现从 1 到指定正整数的连乘,同时在主函数中调用这个
子函数,分别实现 1 到 10 的连乘,1 到 20 的连乘,同时将结果输出。

#include<stdio.h>
float s(int n)
{
    float sum = 0;
    for(int i=1; i<=n; i++)
    {
        sum *= i;
    }
    return sum;
}

int main()
{
    int a[] = {12,7,13,-6,-14,0,-1,-4,9,-14};
    for(int i=0; i<sizeof(a)/sizeof(int); i++)
    {
        printf("%d", a[i]);
    }
    for(int i=0; i<sizeof(a)/sizeof(int); i++)
    {
        if(a[i] <= 0)
            printf("%d", a[i]);
    }
    
    int n;
    scanf("%d", n);
    float sum = s(n);
    printf("%f", sum);
    return 0;
}