Como obtener lo que hay en un array?
#1

Hola, mi pregunta es la siguiente:

Si hago un array, ejemplo: foro[5] y 5 veces debo ponerle o darle un numero a foro, queda asн:

Код:
foro 1 = 1
foro 2 = 2
foro 3 = 3
foro 4 = 4
foro 5 = 5
Ahн se puede ver que el numero mayor de la variable foro es 5, cуmo hago para llamar ese valor? me refiero a reconocer el valor mayor y sacarlo en un mensaje del tipo "el numero mayor es el de foro 5 y es: 5".

Necesito ayuda por favor, y un saludo a todos.
Reply
#2

printf("el numero mayor es el de foro 5 y es: %d", foro[4]);

Recuerda que los index comienzan del cero, si defines foro[5] se almacenarб asн:

foro[0] = 1
foro[1] = 2
foro[2] = 3
foro[3] = 4
foro[4] = 5
Reply
#3

Quote:
Originally Posted by _Zume
Посмотреть сообщение
printf("el numero mayor es el de foro 5 y es: %d", foro[4]);

Recuerda que los index comienzan del cero, si defines foro[5] se almacenarб asн:

foro[0] = 1
foro[1] = 2
foro[2] = 3
foro[3] = 4
foro[4] = 5
OK, entiendo, uso foro[x]+1... Pero no me he explicado bien, antes, esto debe pedir al jugador/usuario que inserte el valor de cada foro, una vez que le ha dado el valor a los 5 foros se procede a analizar los 5 valores y a sacar el mas alto. Espero que ahora me haya explicado mejor, gracias por responder de igual manera.
Reply
#4

PHP код:
main()
{
    new array[] = {
5123524534721}, // Un seteo de nъmeros al azar para la prueba
        
_temporal 0// seteo de _temporal a 0 (no es neceario el set).
    
for(new i=0;sizeof(array); i++) // aumentara i, cuando llegue al tamaсo de el array "array" se detendrб.
    
{
        if(array[
i] > _temporal// Si el nъmero que hay en array[i] es mayor que el que estб almacenado en la variable "_temporal".
        
{
            
_temporal = array[i]; // Setea la variable "_temporal" al nъmero que se encontrу mбs alto que el anterior.
        
}
    }
    
printf("El nъmero mбs alto es: %d"_temporal); // muestra el mayor nъmero de el array, que estб almacenado en _temporal.



EDIT:

Aquн estб en una funciуn.

PHP код:
stock HighestArrayValue(array[], lenght)
{
    new 
_temporal 0// seteo de _temporal a 0 (no es neceario el set).
    
for(new i=0;lenghti++) // aumentara i, cuando llegue al tamaсo de el array "array" se detendrб.
    
{
        if(array[
i] > _temporal// Si el nъmero que hay en array[i] es mayor que el que estб almacenado en la variable "_temporal".
        
{
            
_temporal = array[i]; // Setea la variable "_temporal" al nъmero que se encontrу mбs alto que el anterior.
        
}
    }
    return 
_temporal;
}
main()
{
    new
        array[] = {
5123524534721}
        ; 
// Un seteo de nъmeros al azar para la prueba
        
    
printf("El nъmero mбs alto es: %d"HighestArrayValue(array, sizeof(array))); // muestra el mayor nъmero de el array, que estб almacenado en _temporal.

Como verбs, en la funciуn es necesario aсadir el parбmetro sizeof(...) por que en la funciуn no puede ir ya que el array no tiene un rango definido, si quieres eliminar ese parбmetro usa un macro:

PHP код:
stock _HighestArrayValue(array[], lenght)
{
    new 
_temporal 0// seteo de _temporal a 0 (no es neceario el set).
    
for(new i=0;lenghti++) // aumentara i, cuando llegue al tamaсo de el array "array" se detendrб.
    
{
        if(array[
i] > _temporal// Si el nъmero que hay en array[i] es mayor que el que estб almacenado en la variable "_temporal".
        
{
            
_temporal = array[i]; // Setea la variable "_temporal" al nъmero que se encontrу mбs alto que el anterior.
        
}
    }
    return 
_temporal;
}
#define HighestArrayValue(%1) \
                                    
_HighestArrayValue(%1sizeof(%1))
                                    
main()
{
    new
        array[] = {
5123524534721}
        ; 
// Un seteo de nъmeros al azar para la prueba
    
printf("El nъmero mбs alto es: %d"HighestArrayValue(array)); // muestra el mayor nъmero de el array, que estб almacenado en _temporal.

Reply
#5

Quote:
Originally Posted by _Zume
Посмотреть сообщение
PHP код:
main()
{
    new array[] = {
5123524534721},
        
_temporal 0;
    for(new 
i=0;sizeof(array); i++)
    {
        if(array[
i] > _temporal)
        {
            
_temporal = array[i];
        }
    }
    
printf("El nъmero mбs alto es: %d"_temporal);

Bien, gracias, y si no fuese mucho pedir.. me podrнas explicar detalladamente? Gracias de nuevo.
Reply
#6

Te recuerdo que a la hora de programar la lуgica vence a la inteligencia. Debes analizar el cуdigo y entender que hace cada cosa, y como funciona cada bloque de cуdigo (es decir, lo que hay dentro de un par de llaves "{" y "}").

La funciуn HighestArrayValue no es de mayor complejidad. Intentarй explicar para que logres entenderlo.

PHP код:
/* como lo indica su nombre, GetHighestValue retorna el valor mбs alto en una array
es decir, analiza todos sus indices (usando un bucle for()) y si el valor del
siguiente нndice es mayor que el valor mбximo actual, entonces el valor mбximo es el valor
de dicho нndice. "size" es el tamaсo de la array, la cual debes especificar. si no sabes exactamente su tamaсo, usa sizeof*/
stock GetHighestValue(array[], size)
{
    
/* aquн se crea la variable "max" con la cual podremos llevar en orden
    cual es el nъmero mбximo*/
    
    
new max 0;
    
/* recuerdo haberte explicado anteriormente la lуgica de los bucle for,
    este inicializa una variable en 0, y si el valor de dicha variable es menor
    al tamaсo de la array, entonces (i++). esto es para que se ejecute una iteraciуn
    por cada нndice de la array.*/
    
    
for(new 0sizei++)
    {
        
/* recordamos que "i" va desde 0 hasta el tamaсo de la array, es decir,
        que esto se vendrнa traduciendo a:
        if(array[0] > max)
        if(array[1] > max)...
        if(array[2] > max)...
        y asн sucesivamente hasta llegar al ъltimo нndice.
        
        ademбs, max ya tiene un valor que por defecto es 0. es decir,
        cualquier нndice mayor a 0 puede ser el mбximo. pero cuando se cambia
        la variable "mбximo", hay un nuevo limite. es decir, que en la prуxima
        iteraciуn, array[i] debe ser MAYOR A MБXIMO (que ahora es un valor distinto)
        para ser el nuevo mбximo.*/
        
        
if(array[i] > max
        {
            
max = array[i];
            
/* aquн, simplemente el nъmero mбximo es igual a el valor de la array de
            este нndice.
        }
        /* el bucle se repite hasta que llegue al ъltimo нndice  */
    
}
    
/* aqui ya finalizada el bucle, ya tenemos nuestro valor mбximo, podemos
    retornarlo y ya sabremos cual es el valor mбximo de una array */
    
return max;

Reply
#7

Serнa mejor que retorne la celda donde estб el mayor nъmero.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)