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

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el ttwitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Seleccionar una fila de un array en C
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Seleccionar una fila de un array en C  (Leído 4,288 veces)
folostia

Desconectado Desconectado

Mensajes: 111


Ver Perfil
Seleccionar una fila de un array en C
« en: 15 Enero 2012, 10:48 am »

si yo tengo un array de 6 filas y 10 columnas,donde en cada fila hay una palabra,¿cómo hago para seleccionar un numero de fila(es decir,una palabra) aleatoriamente?


En línea

"Antes de que un software pueda ser reusable, primero ha de ser usable." (Ralph Johnson)
Usuario Linux:547941
folostia

Desconectado Desconectado

Mensajes: 111


Ver Perfil
Re: Seleccionar una fila de un array en C
« Respuesta #1 en: 15 Enero 2012, 10:49 am »

Añado que el array es el siguiente:
Código:
palabra[6][10]={"perro","gato","ordenador","pizarra","lapiz","carpeta"}


En línea

"Antes de que un software pueda ser reusable, primero ha de ser usable." (Ralph Johnson)
Usuario Linux:547941
rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Seleccionar una fila de un array en C
« Respuesta #2 en: 15 Enero 2012, 16:03 pm »

Utilizando la función "rand" (prototipo en <stdlib.h>), esta resulta en un valor de tipo int entre 0 y RAND_MAX (macro definida en el mismo encabezado).

Ese valor lo reduces mediante la sentencia:
Código
  1. i = rand() % 6;
De esa forma el valor de "i" estara en el rango valido. Lo siguiente es utilizar la palabra con "palabra[ i ]".

Una nota: para evitar obtener los mismos resultados con la función "rand" debes indicar la semilla para los números aleatorios mediante otra funcion ("srand" en el mismo encabezado) para ello es común utilizar la hora del sistema en esta forma:
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4.  
  5. #define NUM_ELEM 16
  6.  
  7. int main(void)
  8. {
  9.   int i;
  10.  
  11.   /* Definimos la semilla utilizando la hora actual */
  12.   srand((unsigned) time(NULL));
  13.  
  14.   /* Impresion de valores en el rango 0 .. NUM_ELEM - 1 */
  15.   for (i = 0; i < NUM_ELEM; i++)
  16.      printf(" %d", rand() % NUM_ELEM);
  17.   putchar('\n');
  18.  
  19.   return EXIT_SUCCESS;
  20. }

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
folostia

Desconectado Desconectado

Mensajes: 111


Ver Perfil
Re: Seleccionar una fila de un array en C
« Respuesta #3 en: 15 Enero 2012, 16:12 pm »

Muchas gracias,crees que así me va bien?
Código:
srand(time(NULL));   
    palabra = rand() % 6;
En línea

"Antes de que un software pueda ser reusable, primero ha de ser usable." (Ralph Johnson)
Usuario Linux:547941
rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Seleccionar una fila de un array en C
« Respuesta #4 en: 15 Enero 2012, 16:17 pm »

No lo se pero supongo que no, para estar seguros hay que revisar el código fuente (completo) del programa.

Basado en los fragmentos que pones no funcionara. Debes almacenar las cadenas en un objeto (el array "palabra") y generar el indice almacenándolo en otro (cualquier variable de tipo int como el mencionado "i").

Para procesar la palabra los utilizas juntos con "palabra[ i ]".

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
folostia

Desconectado Desconectado

Mensajes: 111


Ver Perfil
Re: Seleccionar una fila de un array en C
« Respuesta #5 en: 15 Enero 2012, 16:22 pm »

Y algo así?
Código:
srand(time(NULL));   
    palabra[i] =1 rand() % 6;

Teniendo en cuenta que el array es:
Código:
palabra[6][10]={"perro","gato","ordenador","pizarra","lapiz","carpeta"}
En línea

"Antes de que un software pueda ser reusable, primero ha de ser usable." (Ralph Johnson)
Usuario Linux:547941
rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Seleccionar una fila de un array en C
« Respuesta #6 en: 15 Enero 2012, 18:25 pm »

Si no tienes un curso o libro de calidad deberías conseguir uno, utiliza el motor de búsqueda para consultar los temas relacionados.

Y algo así?

Código:
srand(time(NULL));   
    palabra[i] =1 rand() % 6;
Eso tampoco funcionara ya que estas confundiendo el uso (con "palabra[ i ]") con la asignacion (que ya esta dada cuando declaras el array).

Si quieres imprimir una sola palabra al azar basta con algo mas o menos asi:
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4.  
  5. int main(void)
  6. {
  7.   char palabra[6][10] = {
  8.      "perro",
  9.      "gato",
  10.      "ordenador",
  11.      "pizarra",
  12.      "lapiz",
  13.      "carpeta"
  14.   };
  15.  
  16.   srand((unsigned) time(NULL));
  17.   printf("Una palabra es %s\n", palabra[rand() % 6]);
  18.  
  19.   return EXIT_SUCCESS;
  20. }

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
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines