Autor
|
Tema: Función pedir un a llenar un array (Leído 8,732 veces)
|
Dumy
Desconectado
Mensajes: 25
|
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: #include <stdio.h> #include <stdlib.h> #include <time.h> void arrayjugador() { int num,numero2,numero3,numero4,numero5,numero6,numero7,numero8,numero9,numero10; int numero[10] = {2,3,4,1,2,3,4,4,1,3}; numero[0] = 2; numero[1] = 3; numero[2] = 4; numero[3] = 1; numero[4] = 2; numero[5] = 3; numero[6] = 4; numero[7] = 4; numero[8] = 1; numero[9] = 3; printf("Introduce diez numeros desde el 1 al 4"); if((numero < 0)) && ((numero > 5)) { do { printf("Introduce diez numeros desde el 1 al 4"); } while(numero < 0) && (numero > 5) } }
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
Mensajes: 1.603
|
Necesitas hacer un bucle con índice, dentro de él pedir un número y comprobar si está dentro del rango: for i = 0 to 10: do get n while not ( (n is number) && (1 <= n <= 4) ) numero[i] = n
|
|
|
En línea
|
|
|
|
Dumy
Desconectado
Mensajes: 25
|
-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
Mensajes: 1.603
|
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
Mensajes: 25
|
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
Mensajes: 1.603
|
No hace falta que inicialices un array si después vas a darles valores. Basta con Recuerda que para pedir datos del usuario debes usar scanf. Para enteros se usa el parámetro %i o %d. int num; scanf("%d", &num);
|
|
|
En línea
|
|
|
|
Atika
Desconectado
Mensajes: 6
|
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
Mensajes: 97
Tu Mente es mi arma. Entregame tu mente
|
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. #include <stdio.h> #include <stdlib.h> unsigned int *obtenerNumeros(); int main() { unsigned int *numeros = obtenerNumeros(); for(int i = 0; i < 10; i++) { } } unsigned int *obtenerNumeros() { unsigned int *ret = malloc(10); int i = 0; unsigned int numero; printf("ingresa 10 numeros del 1 al 4\n"); do { if(numero > 4) { printf("%d no es un numero valido, vuelve a intentar\n", numero ); } else { ret[i] = numero; i++; } } while(i < 10); return ret; }
|
|
|
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.
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Como llenar este array desde una consulta a la DB?
PHP
|
luison
|
4
|
19,007
|
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,197
|
21 Mayo 2012, 16:40 pm
por smallville121
|
|
|
Pasara array de js a una funcion de php
Desarrollo Web
|
DaNuK
|
1
|
1,621
|
9 Agosto 2013, 20:11 pm
por DaNuK
|
|
|
como llenar un array y leer sus elementos
Programación C/C++
|
antolinalvaro
|
5
|
2,078
|
16 Julio 2018, 14:03 pm
por MAFUS
|
|
|
Funcion que devuelva un array
Programación C/C++
|
statham
|
3
|
2,770
|
1 Febrero 2019, 11:20 am
por statham
|
|