Título: duda con otro función en c Publicado por: fernaEDLP en 29 Noviembre 2018, 03:13 am Gente linda como andan?, espero que anden bien, necesito otra ayudita, el problema dice esto:
La siguiente función imprime de manera iterativa una cadena de caracteres: void imprimir_iter(char * pcad){ while(*pcad != '\0'){ printf("%c",*pcad); pcad++; } } a) Realice la versión recursiva de la función anterior. b) Modifique la función recursiva para que imprima la cadena inv hasta ahora hice esto y parece que mi pc va a estallar: void imprimir_ite(char *pcad); int main() { char cad[80]; printf("ingrese la cadena de caracteres\n"); gets(cad); imprimir_ite(cad); return 0; } void imprimir_ite(char *pcad) { if(*pcad!='\0') { printf("%c",*pcad); pcad++; imprimir_ite(*pcad); } return; } les cuento en aparecen 2 errores, uno en la linea 21 que dice que estoy definiendo un puntero entero sin conversión??¿ y otro en la 16 que dice que espera un char pero recibe un entero?¿, es obvio que el problema esta en la arquitectura de mi funcion Título: Re: duda con otro función en c Publicado por: AlbertoBSD en 29 Noviembre 2018, 03:24 am Hola antes que nada en el panel cuando redactas un mensaje hay un box que dice Código GeSHi, si lo despliegas aparece una lista de lenguajes buscas C y pegas tu código adentro.
El problema es siguiente: TU CODIGO Código
En TEORIA Corregido: Código
No se, ni verifique tu codigo "ITERATIVO", pero como pcad ya es un apuntador, no necesitas colocarle el * antes de cada uso, eso se puede prestar para otras operaciones pero en este caso no. Saludos Título: Re: duda con otro función en c Publicado por: fernaEDLP en 29 Noviembre 2018, 04:01 am Funciona!! graciass Alberto!
Título: Re: duda con otro función en c Publicado por: AlbertoBSD en 29 Noviembre 2018, 04:34 am Por si tienes dudas
te explico para que no exista confusión. Código: void imprimir_ite(char *pcad) Se declara que la variable que recibe imprimir_ite es Apuntador char *pcad Código: if(*pcad!='\0') *pcad nos indica o devuelve el VALOR apuntado por pcad en ese momento para realizar la comparacion Código: printf("%c",*pcad); Código: printf("%c",pcad[0]); Código: if(pcad[0]!='\0'); Código: pcad++; Código: imprimir_ite(pcad); Pasamos como argumento el apuntador pcad, sin * por que con * es el valor apuntado en ese momento. y sin * es el apuntador como tal, Saludos Título: Re: duda con otro función en c Publicado por: fernaEDLP en 29 Noviembre 2018, 04:40 am graciass de nuevo, claro como el agua!
|