Como se devuelve un array en una funcion?
Tengo que hacer una funcion que devuelve un array, y no se como se hace, no se como tengo que hacerlo para que la funcion me devuelva un array de enteros,es necesario que lo devuelva porque es una funcion recursiva y lo necesita para volver a invocarse con el nuevo array.MUCHAS GRACIAS!!
Te pongo el codigo, no hagas caso del programa solo mira como declaro las variables y como devuelvo el array.Me compila bien pero luego no me retorna bien el array. Me puedes ayudar?MUCHAS GRACIAS POT RU RESPUESTA !!
CODIGO DE LA FUNCION:
int* Producte_Polinomis_DiV(int a[MAX],int b[MAX],int n)
{
int s,i;
int *R,*P,*SUMA;
int A1[MAX],B1[MAX],C1[MAX],D1[MAX],RESULT[MAX];
int DIF_A1_B1[MAX],DIF_C1_D1[MAX];
s=n/2;
R=new int[MAX];
SUMA=new int[MAX];
P=new int[MAX];
for(i=0;i<MAX;i++)
{
RESULT[i]=0;
}
if(n==1)
{
RESULT[0]=a[0]*b[0];
return(RESULT);
}
s=n/2;
//PARTIM LES TAULES
for(i=0;i<s;i++) //TAULA A1 i C1
{
A1[i]=a[i];
C1[i]=b[i];
}
for(i=s;i<n;i++) //TAULA B1 i D1
{
B1[i-s]=a[i];
D1[i-s]=b[i];
}
for(i=0;i<s;i++) //RESTA A1-B1
{
DIF_A1_B1[i]=A1[i]-B1[i];
}
for(i=0;i<s;i++) //RESTA C1-D1
{
DIF_C1_D1[i]=C1[i]-D1[i];
}
SUMA=Producte_Polinomis_DiV(DIF_A1_B1,DIF_C1_D1,s);
R=Producte_Polinomis_DiV(A1,C1,s);
P=Producte_Polinomis_DiV(B1,D1,s);
for(i=0;i<n-1;i++)
{
RESULT[i]=R[i];
R[n-1]=0;
}
for(i=0;i<n-1;i++)
{
RESULT[n+1]=P[i];
}
for(i=0;i<n-1;i++)
{
RESULT[s+i]=RESULT[s+i]+(SUMA[i]-(R[i]+P[i]));
}
cout<<endl;
for(i=0;i<n;i++)
{
cout<<RESULT[i]<<" ";
}
return(RESULT);
}
CODIGO DE LA FUNCION:
int* Producte_Polinomis_DiV(int a[MAX],int b[MAX],int n)
{
int s,i;
int *R,*P,*SUMA;
int A1[MAX],B1[MAX],C1[MAX],D1[MAX],RESULT[MAX];
int DIF_A1_B1[MAX],DIF_C1_D1[MAX];
s=n/2;
R=new int[MAX];
SUMA=new int[MAX];
P=new int[MAX];
for(i=0;i<MAX;i++)
{
RESULT[i]=0;
}
if(n==1)
{
RESULT[0]=a[0]*b[0];
return(RESULT);
}
s=n/2;
//PARTIM LES TAULES
for(i=0;i<s;i++) //TAULA A1 i C1
{
A1[i]=a[i];
C1[i]=b[i];
}
for(i=s;i<n;i++) //TAULA B1 i D1
{
B1[i-s]=a[i];
D1[i-s]=b[i];
}
for(i=0;i<s;i++) //RESTA A1-B1
{
DIF_A1_B1[i]=A1[i]-B1[i];
}
for(i=0;i<s;i++) //RESTA C1-D1
{
DIF_C1_D1[i]=C1[i]-D1[i];
}
SUMA=Producte_Polinomis_DiV(DIF_A1_B1,DIF_C1_D1,s);
R=Producte_Polinomis_DiV(A1,C1,s);
P=Producte_Polinomis_DiV(B1,D1,s);
for(i=0;i<n-1;i++)
{
RESULT[i]=R[i];
R[n-1]=0;
}
for(i=0;i<n-1;i++)
{
RESULT[n+1]=P[i];
}
for(i=0;i<n-1;i++)
{
RESULT[s+i]=RESULT[s+i]+(SUMA[i]-(R[i]+P[i]));
}
cout<<endl;
for(i=0;i<n;i++)
{
cout<<RESULT[i]<<" ";
}
return(RESULT);
}
