Ver Mensaje Individual
  #8 (permalink)  
Antiguo 17/11/2014, 13:53
kutcher
 
Fecha de Ingreso: noviembre-2014
Mensajes: 36
Antigüedad: 10 años
Puntos: 13
Respuesta: Petando la pila. Problemas y retos usando recursividad.

Cita:
Iniciado por Pantaláimon Ver Mensaje
kutcher, el segundo problema trataría de escribir el resultado en una variable y no enviarlo directamente a la salida estándar.
xD es verdad, entonces dejo otra solución algo parecida a la de eferion pero usando snprintf:

Código C++:
Ver original
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4.  
  5. char* diag(char* s, char* resultado)
  6. {
  7.     static int i = 0, j = 0;
  8.     if (*s)
  9.     {
  10.         j += snprintf (resultado + j,  26 - j, "%*c\n", ++i, *s);
  11.         diag (++s, resultado);
  12.     }
  13.     return resultado;
  14. }
  15.  
  16. int main (void)
  17. {
  18.     char cadena [] = "abcde";
  19.     int n = strlen(cadena);
  20.  
  21.     char* resultado = (char*)calloc(n * n + 1, sizeof(char));
  22.     resultado = diag(cadena, resultado);
  23.     puts(resultado);
  24.  
  25.     free(resultado);
  26.     return 0;
  27. }

Saludos y que siga esto no pude pasar por aquí estos últimos días ya que estaba algo ocupado