Ver Mensaje Individual
  #3 (permalink)  
Antiguo 16/11/2011, 13:33
sam90
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años, 7 meses
Puntos: 228
Respuesta: Hacer un programa para adivinar 5 números del 0 al 9

Empecemos de apoco. Para empezar asi generamos un numero aleatorio. Primero seteamos la semilla (recordar que los numeros son psudo-aleatorio) con srand. Apartir de ese momento es recomendable llamar a la funcion rand que devuelve un numero aleatorio.(No llames muchas veces a la funcion srand).

Código C:
Ver original
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4.  
  5. int main ()
  6. {
  7.   int n;
  8.   srand ( time(NULL) );
  9.   n = rand() ;
  10. }

Podemos usar el operador modulo "%" que devuelve el resto de la division para acotar el numero aleatorio entre 0 y 9.

Código C:
Ver original
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4.  
  5. int aleatorio()
  6. {
  7.       return rand()  % 10; // devuelve entre 0 y 9
  8. }
  9.  
  10. int main ()
  11. {
  12.   int n;
  13.   srand ( time(NULL) );
  14.   n = aleatorio() ;
  15. }


Por otro lado defines un vector con cinco numeros:

int numeros[5];

Viendo los apuntes del profe puedes crear esta funcion:

Código C:
Ver original
  1. int pertenece(int * vector, int numero)
  2. {
  3.     int bandera=0;
  4.     for (i=0;i<5; i++){
  5.         if (numero==vector[i])
  6.         bandera=1;
  7.      }
  8.      return bandera;
  9. }

Esta funcion devuelve uno si el numero pertenece al vector.

Ahora creemos un ciclo para crear 5 numero aleatorio y que no pertenescan.

Código C:
Ver original
  1. int i,numeros[5],a;
  2. for (i=0;i<5; i++)
  3.     numeros[i]=-1;
  4. for (i=0;i<5; i++) {
  5.      do {
  6.           a = aleatorio();
  7.      } while (pertenece(numeros,a) == 1  );
  8.       numeros[i] = a;
  9. }

Eso es todo para empezar...creo que va a ser un gran impacto si largo todo de cero. Fijate si entiendes o no. Mas o menos te di unos cuantos tips mas. Faltaria retorcar algunas cosas y hacer la parte del juego.