Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: messi22 en 22 de Octubre 2021, 15:44
-
Hola, necesito ayuda para resolver este ejercicio, me cuesta resolverlo...
Ejercicio a resolver
Se va a trabajar con dos vectores de numeros enteros. Se pide lo siguiente:
1) El tamaño de ambos vectores sera el mismo, será un numero aleatorio entre 5 y 15 impar.
2) Ambos vectores deberan cargarse con números aleatorios impares entre 20 y 40, que no terminen en 5.
3) Mostrar ambos vectores.
4) Mostrar el producto entre todos los numeros mayores a 35 (de los dos vectores).
5) Mostrar el minimo entre los dos vectores y en que vector se encontro.
-
Hola.
Muestra lo que tengas hecho y/o específica que parte es la que se te resiste, o donde tienes dudas sobre que proceso lógico aplicar.
Un saludo.
-
Hola que tal, me trabe con el 1) y no continue mucho, intente el numero aleatorio entre 5 y 15:
variable= min + rand()%(max-min+1);
y nose si despues un para el numero impar asi
if (num%2!=0)
y los demas no llegue
-
Bueno, a ver...
La verdad es que el lenguaje C no es lo mío, lo conozco muy por encima...
Aquí he escrito un código que, usando dos funciones para generar distintos tipos de aleatorios, se crean, rellenan y muestran ambos vectores.
No se si es el código más adecuado, ya digo que estoy poco familiarizado con C, pero parece funcionar.
Sería maravilloso que alguien con mejores capacidades nos diera su opinión.
Faltarían los puntos 4) y 5). Inténtalos, a ver hasta donde puedes llegar.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int generaImpar5_15(); //Función que genera un impar entre 5 y 15
int generaImpar20_40(); //Función que genera un impar entre 20 y 40, y que no acaba en 5
int main()
{
srand(time(NULL));
//Creamos vectores
int longitud = generaImpar5_15();
int vector1[longitud], vector2[longitud];
//Rellenamos
for (int i = 0; i < longitud; i++) {
vector1[i] = generaImpar20_40();
vector2[i] = generaImpar20_40();
}
//Los mostramos
printf("Vector 1:\n");
for (int i = 0; i < longitud; i++) {
printf("%d ", vector1[i]);
}
printf("\nVector 2:\n");
for (int i = 0; i < longitud; i++) {
printf("%d ", vector2[i]);
}
return 0;
}
int generaImpar5_15() {
int impar;
do {
impar = 5 + (rand() % 11);
} while (impar % 2 == 0); //Si es par, se repite el bucle
return impar;
}
int generaImpar20_40() {
int imparNo5;
do {
imparNo5 = 20 + (rand() % 21);
} while(imparNo5 % 2 == 0 || imparNo5 % 5 == 0);//Si es par, o impar múltiplo de 5, se repite el bucle
return imparNo5;
}
-
Hola Kabuto, yo el código lo veo correcto. Para messi22, en https://aprenderaprogramar.com/foros/index.php?topic=1460.0 tienes las indicaciones sobre cómo escribir en los foros, cómo poner título a los hilos, etc. Si te queda alguna duda escribe una consulta en el foro "Comunidad". Es importante que aportes código para poder partir de él (ver cómo pegar código en el hilo citado). Si necesitas una base de lenguaje C mira el curso disponible en la web https://aprenderaprogramar.com/index.php?option=com_content&view=category&id=82&Itemid=210
Un saludo,