Dato un array devo eliminare tutti gli elementi nulli(0)ed inserire quelli non nulli in un secondo array attraverso una function.


il problema è che arrivati alla messa a video di "l'array compattato e'" il ciclo for non riesce a riferirsi al j della function void.

codice:
#include<stdio.h>
void compatta(float x[],float k[],int i,int j,int n);
main()
 {
    int i,n,j,t;
    float x[100];
    float k[100];
      printf("Inserisci la dimensione dell'array ");
      scanf("%d",&n);
      for(i=0;i<n;i++)
      {
                      printf("Inserisci il %d numero ",i+1);
                      scanf("%f",&x[i]);
      }
compatta(x,k,i,j,n);
  printf("l'array compattato e': ");
   for(i=0;i<j;i++)
   {
                  printf("%f \n",k[i]);
   }
                  
  
  system("pause");
  return 0;
 }


void compatta(float x[],float k[],int i,int j,int n)
{
 j=0;
        for(i=0;i<n;i++)
     {
                     if(!(x[i]==0))
                       {
                       k[j]=x[i];
                        j++;
                        }
     }
}