[ Foro de C ]
Hola! Soy nuevo en el foro y recién comienzo a programar en C. Acabo de entrar al tema de los arreglos y cadenas de caracteres y aún no les entiendo del todo. Me asignaron una práctica de unos 10 ejercicios con arreglos en lenguaje C. Los he hecho casi todos pero hay 3 ejercicios con los que ya no puedo más. Espero que alguien pueda ayudarme. Gracias de antemano. Estos son los ejercicios:
1) Realice un programa que capture un arreglo de N elementos. El programa debe determinar el Máximo Común Divisor de los elementos del arreglo.
2) Realizar un programa que capture dos cadenas de texto. El programa debe permitir insertar el contenido de una de las cadenas en una posición especificada de la otra cadena.
El del MCD lo has preguntado también en otro hilo, así que te he contestado en el otro hilo.
En cuanto al de "Insertar una cadena en una posición de otra", ¿qué sabes hacer y qué no? Por ejemplo, tres ejercicios simples que te ayuden a afianzar conocimientos y llegar hasta allí:
- Revisa una cadena de texto, para decir cuantas "a" contiene.
- A partir de una cadena de texto, crea otra que contenga un espacio entre cada par de letras.
- A partir de dos cadenas de texto, crea una nueva cadena que contenga la primera y luego la segunda.
- (Si has conseguido esos 3, el 4º sería el que te proponen, que es apenas un poco más difícil que el tercero)
(todo ello se puede hacer con un "for" y "strlen", no necesitas más).
Me podría dar una sugerencia sobre como resolver el primero de los ejercicios que propone? Yo lo realicé, pero resulta que no me será útil para resolver el problema que planteó Num1324.
Saludos.
¿Qué primer ejercicio? ¿El del MCD? Mira el otro hilo y seguimos la conversación en él.
No, el que corresponde al siguiente enunciado:
- A partir de una cadena de texto, crea otra que contenga un espacio entre cada par de letras.
Gracias.
No es difícil:
- Para la nueva cadena, reservas como tamaño 2n-1 (siendo n el tamaño de la cadena inicial)
- Recorres la cadena inicial (con un "for", por ejemplo), y para cada elemento, lo vuelcas en la cadena final y vuelcas a continuación un espacio... excepto si es la última posición.
(por la forma de trabajar de C, puede ser más rápido reservar 2n, recorrer con un "while" volcando a ciegas cada dato y un espacio y luego reemplazar el último por un \0, pero eso ya son detalles para intentar acelerar la implementación en un lenguaje concreto, no es algo genérico del algoritmo).
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)