fork download
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4.  
  5. /* más codigo si hace falta */
  6. // nop :P
  7.  
  8. char* diag(char* cadena, char* resultado) {
  9. /* Escribir código */
  10.  
  11. static int total;
  12.  
  13. if(total < strlen(cadena))
  14. {
  15. char chr = cadena[total];
  16. char space = '\n';
  17.  
  18. if(total == strlen(cadena)-1)
  19. space = '\0';
  20.  
  21. sprintf(resultado, "%s%*c%c", resultado, total+1, chr, space);
  22. total++;
  23.  
  24. return diag(cadena, resultado);
  25. }
  26.  
  27. total = 0;
  28.  
  29. return resultado;
  30. }
  31.  
  32. int main (void) {
  33. char cadena [] = "abcde";
  34. int n = strlen(cadena);
  35.  
  36. char* resultado = (char *)malloc(n * n + 1); /* doy mas espacio del necesario */
  37.  
  38. // a partir de la cadena de caracteres retornar la nueva que tenga los caracteres en diagonal
  39. resultado = diag(cadena, resultado);
  40.  
  41. //mostrar resultado
  42. puts(resultado);
  43.  
  44. free(resultado);
  45.  
  46. return 0;
  47. }
Success #stdin #stdout 0s 2380KB
stdin
Standard input is empty
stdout
a
 b
  c
   d
    e