Hola, foreros!
Estoy iniciándome con este asunto de la programación y me han puesto un ejercicio en el cual me piden lo siguiente:
"Hacer un programa que llene 2 arreglos unidimensionales de 10 elementos con valores aleatorios de 1 a 15. En cada arreglo no puede existir el mismo número repetido, pero si puede existir en el otro arreglo.
Cuando termina de llenar los vectores debe mostrar su contenido uno a la par del otro. Luego deberá sumar los resultados en un tercer arreglo tomando el primer elemento del arreglo 1 y sumarlo con el último elemento del arreglo 2.
Al finalizar la suma de los elementos debe mostrar el resultado del tercer vector."
Pues bien, ya comencé a desarrollar el código para resolver este ejercicio, pero, cuando llego a la parte donde debo comprobrar si un elemento se repite en un arreglo (por el momento solamente he declarado 1 arreglo) ya no sé qué hacer para crear la recursividad que me permita saber si el elemento está o no repetido.
Agradecería mucho si podéis ayudarme a resolver esto. Os dejo el código que he desarrollado hasta el momento.
//Inicia el codigo
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <time.h>
using namespace std;
int main () {
int tamanno = 10;
int arreglo1[tamanno]; //declaro un arreglo de 'tamanno' elementos.
int contador = 1;
int aux = 0;
//Voy a sembrar una 'semilla' para luego usar numeros aleatorios en
//el arreglo que utilizare posteriormente.
srand(time(NULL));
//Esto inicializa en '0' a los elementos del arreglo.
for ( int i = 0; i < tamanno; i++ ) {
arreglo1 = (rand() % 10) + 1; //Genera numeros aleatorios entre 0 y 10
}
// Aqui deberia haber algo que permita crear una recursion para saber
// si un elemento del arreglo esta repetido. De ser asi deberia crear
// otro elemento en esa posicion, comprobar de nuevo si esta repetido
// y si no lo esta entonces pasar a la siguiente posicion repetiendo
// esta accion hasta que todos los numeros no esten repetidos.
//Ahora voy a mostrar el encabezado de donde estara el arreglo.
cout << "Elemento" << setw(13) << "Valor" << endl;
cout << "Elemento" << setw(13) << "Valor" << endl;
//Esta sección de codigo es la que muestra a los elementos del
//arreglo.
for ( int i = 0; i < tamanno; i++ )
cout << setw(7) << i << setw(13) << arreglo1 << endl;
return 0;
// Finaliza el codigo
http://foro.elhacker.net/programacion_cc/generar_numeros_aleatorios_sin_repeticionc-t315014.0.html
http://foro.elhacker.net/programacion_cc/como_crear_numeros_aleatorios_sin_que_se_repitan-t268765.0.html
Hay más en Códigos interesantes, post interesantes... Etc.
Suerte!
.
puedes traducir este codigo:
http://foro.elhacker.net/programacion_visual_basic/src_crndnumbersnr_generar_numeros_aleatorios_sin_repetir_veryfast-t328967.0.html
El algoritmo es súbitamente rápido ya que no emplea bucles en la creación de números aleatorios.
Dulces Lunas!¡.
.
NECESITO AYUDA, SOY PRINCIPIANTE EN ESTE TEMA Y NO PUEDO CON UNA TAREA, ME PIDE LO SIGUIENTE:
Diseña un programa que genere números aleatorios entre 0 y 10000 e imprima el valor del número
generado, el programa se debe de ejecutar constantemente ( es decir en forma repetitiva) y se
debe detener, solo cuando el numero generado se encuentre en el rango de (4000 a 6000)
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
main()
{
int num,i;
srand(time(NULL));
num=rand()%1;
num=rand()%10000;
printf("Numero aleatorio es: \n", num);
printf("%i\n", num);
HASTA AHI ME DA NUMEROS ALEATORIOS PERO NO LOGRO MAS AYUDA POR FAVOR URGEEEE
perdon por responder a algo muerto. y por el codigo
#include <iostream>
#include <stdlib.h>
#include <time.h>
using std::cout;
using std::endl;
int main(){
const int Max = 10000, Limite =10001;
srand(time(NULL));
int aux;
do{
aux =0 + rand()%(Limite - 0);
if((aux > 4000) && (aux < 6000)){
cout<<"Ultimo: "<<aux<<endl;
return 0;
}
else{
cout<<aux<<endl;
}
}while((aux < 4000) || (aux >6000));
return 0;
}