用c语言实现任意位数的向量坐标叉乘

例如向量a=(1,2,3,5,4) b=(2,5,6,4,1),使他利用行列式的方式叉乘,并输出成一个新的向量,c=(.....).
求大神帮忙!!!

#include "stdio.h"
#include "stdlib.h"
#include "string.h"

int main()
{
    int n;
    scanf("%d", &n);
    int * a = (int *)malloc(sizeof(int) * n);
    int * b = (int *)malloc(sizeof(int) * n);
    int * c = (int *)malloc(sizeof(int) * n);
    memset(c, 0, sizeof(int) * n);
    printf("vector a:");
    fflush(stdin);
    for (int i = 0; i < n; i++)
        scanf("%d", &a[i]);
    printf("vector b:");
    fflush(stdin);
    for (int i = 0; i < n; i++)
        scanf("%d", &b[i]);
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n; j++)
            c[i] += a[i]*b[j];
    }
    for (int i = 0; i < n; i++)
        if (i != n - 1)
            printf("%d,", c[i]);
        else
            printf("%d\n", c[i]);
    return 0;
}

int main()
{
int n;
scanf("%d", &n);
int a[n],b[n],c[n];
printf("vector a:");
for (int i = 0; i < n; i++)
scanf("%d", &a[i]);
printf("vector b:");
for (int i = 0; i < n; i++)
scanf("%d", &b[i]);
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
c[i] += a[i]*b[j];
}
for (int i = 0; i < n; i++)
if (i != n - 1)
printf("%d,", c[i]);
else
printf("%d\n", c[i]);
return 0;
}