elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Maximos y minimos numeros aleatorios.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Maximos y minimos numeros aleatorios.  (Leído 9,177 veces)
Antonio9411

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Maximos y minimos numeros aleatorios.
« en: 19 Noviembre 2012, 20:07 pm »

Buenas a quien lea. Escribo con motivo de un probremilla que me ha surgido con un ejercicio de clase que se me ha atragantado. La cuestión es hacer un programa que genere 10 numeros aleatorios entre el 10 y el 1000, los muestre en pantalla y diga cual es el maximo y el minimo.

He comenzado generando los valores aleatorios entre ese itervalo, y los he metido en un vector para poder trabajar con ellos más adelante. Hasta aqui ningún problema, el programa me muestra los resultados en pantalla y todos estan comprendidos entre el 10 y el 1000. Lo malo viene cuando intento definir el max y el min.

Lo que he intentado es definir un maximo y un minimo como los valores de dos posiciones cualquiera del vector, y recorrer el vector con un ciclo for, viendo si cada vector es mayor o menor que el maximo, y así definir nuevos max y min.  Tal que así.

//Programa que genera 10 numeros aleatorios entre el 100 y el 1000 y dice cual es el maximo, el minimo y el medio

#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;

int main (void) {
    int v[10], i, max, min;
   
    srand(time(NULL));
    v[0]=10+rand()%(1000-10)+1;
    v[1]=10+rand()%(1000-10)+1;
    v[2]=10+rand()%(1000-10)+1;
    v[3]=10+rand()%(1000-10)+1;
    v[4]=10+rand()%(1000-10)+1;
    v[5]=10+rand()%(1000-10)+1;
    v[6]=10+rand()%(1000-10)+1;
    v[7]=10+rand()%(1000-10)+1;
    v[8]=10+rand()%(1000-10)+1;
    v[9]=10+rand()%(1000-10)+1;
   
     cout<<v[0]<<endl<<v[1]<<endl<<v[2]<<endl<<v[3]<<endl<<v[4]<<endl<<v[5]<<endl;
     cout<<v[6]<<endl<<v[7]<<endl<<v[8]<<endl<<v[9]<<endl;   

   v[0]=max;
   v[0]=min;
    for (i=0;i<10;i++) {
     
        if(v>max) { v=max; }
        else if(v<min) { v=min; } }
       
       
     cout<<"Maximo: "<<max<<endl;
     cout<<"Minimo: "<<min<<endl;   
       
   
   
   
    system("pause");
   
    return 0; }


Sin errores de sintaxis, el programa compila, pero al ejecutarse, me muestra un maximo y un minimo aleatorio y fuera del intervalo. Llevo un par de dias dandole vueltas y no se me ocurre nada.

 Supongo que será un error muy obvio y tonto, o que estaré metiendo la pata hasta el fondo confundiendo algún concepto, pero llevo solo un mes programando y no se me ocurre donde.

Gracias de antemano y saludos.


En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Maximos y minimos numeros aleatorios.
« Respuesta #1 en: 19 Noviembre 2012, 23:50 pm »

El problema son las asignaciones en el bucle:
Código
  1. v[0] = max;
  2. v[0] = min;
  3. for (i = 0; i < 10; i++){
  4.   if (v[i] > max){
  5.      v[i] = max;
  6.   }else if (v[i] < min){
  7.      v[i] = min;
  8.   }
  9. }

Están al revés, cambia el bucle a:
Código
  1. max = v[0];
  2. min = v[0];
  3.  
  4. for (i = 1; i < 10; i++){
  5.   if (v[i] > max){
  6.      max = v[i];
  7.   }else if (v[i] < min){
  8.      min = v[i];
  9.   }
  10. }

Un saludo


En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
Antonio9411

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Maximos y minimos numeros aleatorios.
« Respuesta #2 en: 20 Noviembre 2012, 15:41 pm »

Solucionado. Muchas gracias!
En línea

zonahurbana

Desconectado Desconectado

Mensajes: 178

RS, JC.


Ver Perfil WWW
Re: Maximos y minimos numeros aleatorios.
« Respuesta #3 en: 20 Noviembre 2012, 21:27 pm »

    srand(time(NULL));
    v[0]=10+rand()%(1000-10)+1;
    v[1]=10+rand()%(1000-10)+1;
    v[2]=10+rand()%(1000-10)+1;
    v[3]=10+rand()%(1000-10)+1;
    v[4]=10+rand()%(1000-10)+1;
    v[5]=10+rand()%(1000-10)+1;
    v[6]=10+rand()%(1000-10)+1;
    v[7]=10+rand()%(1000-10)+1;
    v[8]=10+rand()%(1000-10)+1;
    v[9]=10+rand()%(1000-10)+1;
   
     cout<<v[0]<<endl<<v[1]<<endl<<v[2]<<endl<<v[3]<<endl<<v[4]<<endl<<v[5]<<endl;
     cout<<v[6]<<endl<<v[7]<<endl<<v[8]<<endl<<v[9]<<endl;
Y recuerda que para generar N números aleatorios (de un mismo intervalo) puedes usar también un FOR:
Código:
for(int x=0; x<N; x++) v[x]=10+rand()%(1000-10)+1;
// En tu caso reemplazarías N por 10.

Lo mismo para mostrar valores N contenidos en un arreglo:
Código:
for(int x=0; x<N; x++) cout<<v[x]<<endl;
En línea

Nunca dejar de aprender es importante, más allá del ritmo que se siga ...
Antonio9411

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Maximos y minimos numeros aleatorios.
« Respuesta #4 en: 24 Noviembre 2012, 01:11 am »

Y recuerda que para generar N números aleatorios (de un mismo intervalo) puedes usar también un FOR:
Código:
for(int x=0; x<N; x++) v[x]=10+rand()%(1000-10)+1;
// En tu caso reemplazarías N por 10.

Lo mismo para mostrar valores N contenidos en un arreglo:
Código:
for(int x=0; x<N; x++) cout<<v[x]<<endl;

Pues es verdad... Mira que estoy espeso, lo que me puedo ahorrar así... Gracias!
En línea

Antonio9411

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Maximos y minimos numeros aleatorios.
« Respuesta #5 en: 24 Noviembre 2012, 21:31 pm »

EDITO. Era un fallo del archivo.
« Última modificación: 24 Noviembre 2012, 21:43 pm por Antonio9411 » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
NUMEROS ALEATORIOS EN VB
Programación Visual Basic
WCIETE 3 4,156 Último mensaje 30 Agosto 2005, 01:19 am
por Slasher-K
Numeros aleatorios
Programación Visual Basic
Gleper 2 2,363 Último mensaje 3 Noviembre 2007, 14:40 pm
por Gleper
NUMEROS ALEATORIOS
Java
ponichan 6 10,479 Último mensaje 19 Abril 2008, 21:35 pm
por sapito169
Números Aleatorios!
Programación Visual Basic
ka0s 5 4,595 Último mensaje 9 Abril 2009, 04:27 am
por ka0s
Números Aleatorios
Programación C/C++
Kropt32 2 3,157 Último mensaje 2 Agosto 2010, 20:43 pm
por do-while
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines