我希望找到解决的办法

#定义了数组a和b,并赋初值,a数组中的值为:13578,b数组中的值为:23458。请编写函数fun,其功能是:把a数组中的n个数的平方值、与b数组中逆序的n个数的平方值——对应相加,结果存在c数组中。在主函数中调用fun,并输出c数组的值。

#include <stdio.h>
void func(int *a,int *b,int *c,int n)
{  
    for(int i=0;i<n;i++)
        c[i] = a[i]*a[i] + b[n-1-i]*b[n-1-i];
}
int main()
{
    int a[5] = {1,3,5,7,8},b[5] = {2,3,4,5,8},c[5];
    func(a,b,c,5);
    for(int i=0;i<5;i++)
        printf("%d ",c[i]);
}


void fun(int a[], int b[], int c[], int len)
{
   for (int i = 0; i < len; i++)
   {
      c[i] = a[i] * a[i] + b[len - i - 1] * b[len - i - 1];
   }
}

int main(void)
{
   int a[5] = {1, 3, 5, 7, 8};
   int b[5] = {2, 3, 4, 5, 8};
   int c[5];
   fun(a, b, c, 5);
   for (int i = 0; i < 5; i++)
      printf("%d ", c[i]);

   return 0;
}