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

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Función pedir un a llenar un array
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Función pedir un a llenar un array  (Leído 8,562 veces)
Dumy

Desconectado Desconectado

Mensajes: 23


Ver Perfil
Función pedir un a llenar un array
« en: 26 Octubre 2023, 19:37 pm »

Hola

Intento desarrollar jna función para un juego de memorua, consistenete en:

Llenar un array con números enteros, comprendidos entre el 1 y el 4, pedidos al usuario. Si el usuario introduce un número no comprendido en ese rango, se le vuelve a pedir hasta que cumpla
las especificaciones. El array tiene máximo 10 posiciones y se llenarán las que se indiquen por parámetro de entrada que coincidirán con las generadas aleatoriamente.

Asi es como intento solucionarlo:

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4.  
  5. void arrayjugador() {
  6.  
  7.    int num,numero2,numero3,numero4,numero5,numero6,numero7,numero8,numero9,numero10;
  8.  
  9.    int numero[10] = {2,3,4,1,2,3,4,4,1,3};
  10.    numero[0] = 2;
  11.    numero[1] = 3;
  12.    numero[2] = 4;
  13.    numero[3] = 1;
  14.    numero[4] = 2;
  15.    numero[5] = 3;
  16.    numero[6] = 4;
  17.    numero[7] = 4;
  18.    numero[8] = 1;
  19.    numero[9] = 3;
  20.  
  21.    printf("Introduce diez numeros desde el 1 al 4");
  22.  
  23.    scanf("%d",&numero[0]);
  24.    scanf("%d",&numero[1]);
  25.    scanf("%d",&numero[2]);
  26.    scanf("%d",&numero[3]);
  27.    scanf("%d",&numero[4]);
  28.    scanf("%d",&numero[5]);
  29.    scanf("%d",&numero[6]);
  30.    scanf("%d",&numero[7]);
  31.    scanf("%d",&numero[8]);
  32.    scanf("%d",&numero[9]);
  33.    scanf("%d",&numero[10]);
  34.  
  35.    if((numero < 0)) && ((numero > 5)) {
  36.  
  37.        do {
  38.  
  39.            printf("Introduce diez numeros desde el 1 al 4");
  40.  
  41.        } while(numero < 0) && (numero > 5)
  42.  
  43.    }
  44.  
  45. }
  46.  
Lo que no estoy seguro de que se solucione dd esta manera si slguien me pudiera almenos indicar el camino  correcto, seria de ageadecer


« Última modificación: 17 Diciembre 2023, 07:30 am por fary » En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Función pedir un a llenar un array
« Respuesta #1 en: 26 Octubre 2023, 20:22 pm »

Necesitas hacer un bucle con índice, dentro de él pedir un número y comprobar si está dentro del rango:
Código:
for i = 0 to 10:
   do
      get n
   while not ( (n is number) && (1 <= n <= 4) )
   numero[i] = n


En línea

Dumy

Desconectado Desconectado

Mensajes: 23


Ver Perfil
Re: Función pedir un a llenar un array
« Respuesta #2 en: 26 Octubre 2023, 23:01 pm »

-Disculpa pero ¿a que te refieres con lo del indice?, ¿es el codigo que me pasas?, perdona las preguntas pero es la primera vez que leo al respecto
« Última modificación: 26 Octubre 2023, 23:05 pm por Dumy » En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Función pedir un a llenar un array
« Respuesta #3 en: 27 Octubre 2023, 20:45 pm »

Es pseudocódigo, más o menos para que tengas una idea. Este es fácil de traducir a C.
En línea

Dumy

Desconectado Desconectado

Mensajes: 23


Ver Perfil
Re: Función pedir un a llenar un array
« Respuesta #4 en: 29 Octubre 2023, 14:28 pm »

Hola de nuevo

Tengo este codigo:

int numeroaleatorio[10] = {1,2,4,3,3,2,4,1,2,1};
srand(time(NULL));//inicialización de los números aleatoriosint num,num2;
for(int f = 0; f<=10; f++) {
numeroaleatorio[f]=rand()%4;

}

Que debería rellenar el array con 10 números aleatorios del 0 al 4 pero necesito incluir un parámetro de entrada, que indique la posición de los números generados.

El caso es que tengo entendido que con el corchete inicias el array, pero no tengo claro como hacer lo del parámetro de entrada, que dictamina el orden
En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Función pedir un a llenar un array
« Respuesta #5 en: 30 Octubre 2023, 19:40 pm »

No hace falta que inicialices un array si después vas a darles valores. Basta con
Código:
int mi_array[10];

Recuerda que para pedir datos del usuario debes usar scanf. Para enteros se usa el parámetro %i o %d.

Código:
int num;
scanf("%d", &num);
En línea

Atika

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: Función pedir un a llenar un array
« Respuesta #6 en: 16 Diciembre 2023, 21:41 pm »

El tamaño del array numero es 10, por lo que los índices van de 0 a 9. Sin embargo, estás intentando leer en numero[10], lo cual está fuera de los límites del array.

scanf("%d",&numero[10]); <--- Esta línea sobra, al ser un array de 10 elementos, tienes que recordar que el primer elemento es el 0, el segundo el 1... y así hasta el 9, que serían los diez
elementos.

El bloque if tiene una condición incorrecta (if((numero < 0)) && ((numero > 5))). Parece que estás intentando validar si algún número ingresado está fuera del rango del 1 al 4, pero la lógica está equivocada. Para que sea válido sustitúyelo por: if (numero < 1 || numero > 4)


El do-while tiene un error de sintaxis: falta un punto y coma al final de la condición y también hay un error en la lógica de la condición. Si lo corregimos sería algo así: } while (numero < 1 || numero > 4);

Con paciencia lo lograrás.
En línea

D3s0rd3n

Desconectado Desconectado

Mensajes: 97


Tu Mente es mi arma. Entregame tu mente


Ver Perfil
Re: Función pedir un a llenar un array
« Respuesta #7 en: 17 Diciembre 2023, 05:13 am »

Primero y te lo digo como amigo, tu codigo esta horrible. Hay muchas maneras de hacer lo que buscas pero intentaré mostrarte una forma simple para que agarres práctica. Uno de los primeros problemas al que te vas a enfrentar es que este array es inaccesible a tu funcion principal. Es muy tedioso lidiar con arrays cuando se trata de accesarla atraves de una funcion y si nada mas la vas a modificar una vez (como creo que es tu caso) puedes usar una allocacion dinamica. Solo acuerdate de liberarla cuando termines. Y lo bueno de este codigo es que es facil modificarlo para que funcione cpn diferentes valores. Otra es que para poder validar los números en este caso uso unsigned int para poder solo usar una comparación y no tener que preocuparse por los numeros negativos. Ademas deberias tomar en cuenta que cuando haces algo veces repetidas es mejor usar un ciclo que escribirlo varias veces.

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. unsigned int *obtenerNumeros();
  5.  
  6. int main() {
  7. unsigned int *numeros = obtenerNumeros();
  8.  
  9. for(int i = 0; i < 10; i++) {
  10. printf("%d\n", numeros[i]);
  11. }
  12.  
  13. free(numeros);
  14.  
  15. }
  16.  
  17. unsigned int *obtenerNumeros() {
  18. unsigned int *ret = malloc(10);
  19. int i = 0;
  20. unsigned int numero;
  21.  
  22. printf("ingresa 10 numeros del 1 al 4\n");
  23.  
  24. do {
  25. scanf("%u", &numero);
  26.  
  27. if(numero > 4) {
  28. printf("%d no es un numero valido, vuelve a intentar\n", numero);
  29. } else {
  30. ret[i] = numero;
  31. i++;
  32. }
  33. } while(i < 10);
  34.  
  35. return ret;
  36. }
  37.  
En línea

Gobiernos del Mundo Industrial, ustedes, cansados gigantes de carne y acero
vengo del Ciberespacio, el nuevo hogar de la Mente. En nombre del futuro, les
pido en el pasado  que nos dejen en paz.  No son  bienvenidos entre nosotros.
No tienen ninguna soberania sobre el lugar donde nos reunimos.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Como llenar este array desde una consulta a la DB?
PHP
luison 4 18,989 Último mensaje 15 Febrero 2010, 16:49 pm
por luison
ayuda a llenar una pila automaticamente ya tengo el vaciado solo me falta llenar
Java
smallville121 0 3,188 Último mensaje 21 Mayo 2012, 16:40 pm
por smallville121
Pasara array de js a una funcion de php
Desarrollo Web
DaNuK 1 1,610 Último mensaje 9 Agosto 2013, 20:11 pm
por DaNuK
como llenar un array y leer sus elementos
Programación C/C++
antolinalvaro 5 2,073 Último mensaje 16 Julio 2018, 14:03 pm
por MAFUS
Funcion que devuelva un array
Programación C/C++
statham 3 2,716 Último mensaje 1 Febrero 2019, 11:20 am
por statham
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines