Título: ayuda con este programa con funcion recursiva Publicado por: mikany en 6 Febrero 2017, 20:12 pm // segun esto imprime la palabra pero alrevez , y hay error y no tengo idea de cual es el error , o si hay una manera más facil . mil gracias
#include <stdio.h> #include <conio.h> #include<stdlib.h> void invierte(char*,char*,int); int main(int a,char*argv[]) { char palabra[]="javier"; char*invertida = (char*)malloc(sizeof(palabra)); invierte(palabra, invertida, strlen(palabra)-1); printf("%s",invertida); return 0; } void invierte ( char*p,char*i,int k) { *i++ = p[k]; if(!(k--<0)) invierte(p,i,k); } Título: Re: ayuda con este programa con funcion recursiva Publicado por: dato000 en 6 Febrero 2017, 21:00 pm #include <stdio.h> #include <stdlib.h> Necesitas los espacios correctos en las librerias, la de conio.h no la necesitas. No le veo error alguno. Cuál es el problema?? Título: Re: ayuda con este programa con funcion recursiva Publicado por: MAFUS en 6 Febrero 2017, 21:08 pm Para hacerlo de tu forma me gusta más una solución iterativa. En cambio para escribir una frase al revés esta solución recursiva es muy elegante:
Código
Mira, siguiendo con la misma idea: Código
Al final sí tiene una solución elegante recursiva :D Título: Re: ayuda con este programa con funcion recursiva Publicado por: do-while en 7 Febrero 2017, 11:18 am Código: if(!(k--<0)) invierte(p,i,k); Revisa y corrige lo anterior. Está mal. Si no ves el error estudia sobre predecrementos y postdecrementos. |