求大神指点:怎么将数组一部分赋值给数组?

输入20个数,将素数输入并输出所有素数的和
我感觉是将满足条件的数赋值给新数组出了问题

#include<stdio.h>//找出素数,求和
int Su[20];
int A(int x[20],int Su[20])/*判断是否为素数并将素数给Su[20]*/
{
    int i,j,b,z=0;
        for(i=0,j=2;j<x[i]||i<20;i++,j++)
        {   b=x[i]%j;
            if(b==0)
                break;
            Su[z]=x[i];z=z+1;   break;
        }
}
int B(int Su[20])/*素数求和*/
{
    int i,s=0;
        for(i=0;i<20;i++)
            s=Su[i]+s;
        return(s);
}
int main()
{
    int x[20],i,p;
    printf("Enter 20 numbers:\n");
    for(i=0;i<20;i++)
    {   printf("%d、",i+1);
        scanf("%d",&x[i]);
    }
    printf("素数:\n");
    for(i=0,p=1;i<20;i++,p++)
    {   
        printf("%d ",Su[i]);
        if(p%5==0)
            printf("\n");
        }
    printf("素数的和是:%d\n",B(Su));
}