Código
tambien soy "principiante" en c, asi que me la he apañado con lo que sabia; No he usado ninguna funcion ya que me daba muchos errores de compilacion, pero si realmente necesitas trascribirlo con funciones yo usaria una funcion void Base (n), ya que si usas el return ret[] solo puedes igualar el primer caracter del array.
#include<stdio.h> //* (Base(n-1)+ 'E' + Base(n-1) + 'R' + Base(n-1) + 'E' + Base(n-1)) int main(void) { int n, i; char array[4]; const char lado [4] = {'l','a','d','o'}; const char test [4] = {'t','e','s','t'}; int x; if(n==0) for (x=0; x<4; x++) //* Copiamos el array lado[] a array[] array[x] = lado[x]; else for (x=0; x<4; x++) //* Copiamos el array test[] a array[] array[x] = test[x]; for(i=0; i < 4; i++) //* Imprimimos cada uno de los caracteres del array return 0; } /* FALLOS: * %s es para cadena de caracteres, uso de punteros. * declaramos como arrays para no tener que lidiar con el caracter NULL */
Y por ultimo no entiendo el algoritmo {(Base(n-1)+ 'E' + Base(n-1) + 'R' + Base(n-1) + 'E' + Base(n-1))}, por eso te he puesto la palabra "test", si me puedes detallar a lo que te refieres con eso....
saludos y espero haberte ayudado.