#include <stdio.h>
#include <string.h>
#include <stdlib.h>
/* más codigo si hace falta */
// nop :P
char* diag(char* cadena, char* resultado) {
/* Escribir código */
static int total;
{
char chr = cadena[total];
char space = '\n';
space = '\0';
sprintf(resultado
, "%s%*c%c", resultado
, total
+1, chr
, space
); total++;
return diag(cadena, resultado);
}
total = 0;
return resultado;
}
int main (void) {
char cadena [] = "abcde";
char* resultado
= (char *)malloc(n
* n
+ 1); /* doy mas espacio del necesario */
// a partir de la cadena de caracteres retornar la nueva que tenga los caracteres en diagonal
resultado = diag(cadena, resultado);
//mostrar resultado
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KI2luY2x1ZGUgPHN0ZGxpYi5oPgoKLyogbcOhcyBjb2RpZ28gc2kgaGFjZSBmYWx0YSAqLwovLyBub3AgOlAKCmNoYXIqIGRpYWcoY2hhciogY2FkZW5hLCBjaGFyKiByZXN1bHRhZG8pIHsKICAgIC8qIEVzY3JpYmlyIGPDs2RpZ28gKi8KCiAgICBzdGF0aWMgaW50IHRvdGFsOwoKICAgIGlmKHRvdGFsIDwgc3RybGVuKGNhZGVuYSkpCiAgICB7CiAgICAgICAgY2hhciBjaHIgPSBjYWRlbmFbdG90YWxdOwogICAgICAgIGNoYXIgc3BhY2UgPSAnXG4nOwoKICAgICAgICBpZih0b3RhbCA9PSBzdHJsZW4oY2FkZW5hKS0xKQogICAgICAgICAgICBzcGFjZSA9ICdcMCc7CgogICAgICAgIHNwcmludGYocmVzdWx0YWRvLCAiJXMlKmMlYyIsIHJlc3VsdGFkbywgdG90YWwrMSwgY2hyLCBzcGFjZSk7CiAgICAgICAgdG90YWwrKzsKCiAgICAgICAgcmV0dXJuIGRpYWcoY2FkZW5hLCByZXN1bHRhZG8pOwogICAgfQoKICAgIHRvdGFsID0gMDsKCiAgICByZXR1cm4gcmVzdWx0YWRvOwp9CgppbnQgbWFpbiAodm9pZCkgewogICAgY2hhciBjYWRlbmEgW10gPSAiYWJjZGUiOwogICAgaW50IG4gPSBzdHJsZW4oY2FkZW5hKTsKCiAgICBjaGFyKiByZXN1bHRhZG8gPSAoY2hhciAqKW1hbGxvYyhuICogbiArIDEpOyAvKiBkb3kgbWFzIGVzcGFjaW8gZGVsIG5lY2VzYXJpbyAqLwoKICAgIC8vIGEgcGFydGlyIGRlIGxhIGNhZGVuYSBkZSBjYXJhY3RlcmVzIHJldG9ybmFyIGxhIG51ZXZhIHF1ZSB0ZW5nYSBsb3MgY2FyYWN0ZXJlcyBlbiBkaWFnb25hbAogICAgcmVzdWx0YWRvID0gZGlhZyhjYWRlbmEsIHJlc3VsdGFkbyk7CgogICAgLy9tb3N0cmFyIHJlc3VsdGFkbwogICAgcHV0cyhyZXN1bHRhZG8pOwoKICAgIGZyZWUocmVzdWx0YWRvKTsKCiAgICByZXR1cm4gMDsKfQ==