[ Foro de C ]

MCD

03-Aug-2014 21:43
Invitado (numb1324)
1 Respuestas

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) Realice un programa que lea por teclado un arreglo A de N elementos y que asimismo capture por teclado un escalar K. El programa debe determinar e imprimir el arreglo resultante que se obtiene de multiplicar cada elemento del arreglo por el escalar.

3) 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.

PD: para el programa del MCD tengo esto hecho, por si a alguien le sirve:

 
main(){
int tam; // Declaro tamaño
leer tam; // Utiliza scanf("%d",&tam);
int vector[tam]; // Declaro arreglo
int mcd;
 
// Rellenar vector
for (i:0 a tam){
vector[i] = leer valor;
}
 
// Busco el minimo
int mcd = minimo del vector // HAZLO
 
int encontrado = 1;
while (mcd>1 && !encontrado) {
encontrado = 1;
for (i:0 a tam){
if (vector[i]%mdc!=0)
encontrado = 0;
}
if (!encontrado) mcd--;
}
 
prinft("El MCD es %d\n",mcd);
}
 




07-Aug-2014 12:39
Nacho Cabanes (+32)

Te he editado el título de la pregunta, porque veo que la has repetido poco después con las dos últimas dudas.

En ese esqueleto te falta calcular el mínimo del vector.

Basta con que tomes el primer elemento como "mínimo provisional", y compares con todos los demás elementos usando un "for". Cada vez que encuentres un número que sea menor que el "mínimo provisional", actualizas su valor.






(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.)