SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: tazz1987 en Sábado 2 de Agosto de 2008, 23:49

Título: duda en c
Publicado por: tazz1987 en Sábado 2 de Agosto de 2008, 23:49
bueno mi duda en que cuando tengo una secuencia de valores como  5 9 6 7 2 lo que quiero es que me diga la posicion numero maximo en este caso el 9 que es la posicion 2 y del numero minimo que es el 2 que es la posicion 5 espero me puedan gracias
Título: Re: duda en c
Publicado por: fORU- en Domingo 3 de Agosto de 2008, 03:31
Hola que tal , para esto ocupas utilizar:

1.- un vector
2.- una variable para el numero max y una variable para el numero min
3.- Hacer comparaciones hasta encontrar el menor y el mayor y guardar su posiciciones en las variables ya mencionadas (max, min)
Título: Re: duda en c
Publicado por: fachamix en Miércoles 6 de Agosto de 2008, 15:53
o puedes usar una variables tipo "int" , y otras 2 para max y min.

luego , descompones el numero utilizando operaciones matematicas y una funcion que dvuelva la parte entera de un numero.

lo irias dividiendo y tomando la parte entera ... JA!
Título: Re: duda en c
Publicado por: m0skit0 en Miércoles 6 de Agosto de 2008, 16:04
Cita de: "fachamix"
puedes usar una variables tipo "int"
Cita de: "fachamix"
descompones el numero utilizando operaciones matematicas y una funcion que dvuelva la parte entera de un numero
Cita de: "fachamix"
lo irias dividiendo y tomando la parte entera

¿De qué hablas?

Cita de: "tazz1987"
una secuencia de valores

Tiene varios valores, no uno sólo. A ver si leemos antes de postear  :D
Título: Re: duda en c
Publicado por: fachamix en Miércoles 6 de Agosto de 2008, 16:28
a ver si usamos la cabeza antes de criticar:

una secuencia de valores puede venir de mil y un formas

supongamos que nuestro programa recibe una secuencia de 8 numeros de los cuales los 2 primeros corresponden al dia, los 2 segundos al mes, y los 4 restantes , al año
la fecha 11/10/1984 podria venir de la siguiente manera:
1) 1 1 1 0 1 9 8 4
2) 11101984

para el caso 2) , como harias para descomponerlo utilizando op. matematicas ??? de la siguiente manera:

extremos los 2 primero entonces:
(Si la secuencia tiene un valor indefinido de numeros mediante division recursiva, y evaluando la aprte entera de la division , averiguamos cuantos numeros tiene la secuencia. es decir , primero dividimos el numero por 10, luego por 100, luego por 1000, hasta que la parte entera del resultado de la ultima division sea 0, y asi vamos a averiguar cuantos digitos tiene la scuencia de numero)

1º) 11101984 / 1000000 = 11,101984
     si tomamos la parte entera, nos dari los 2 primeros.
     int(11,101984) = 11

2º)Luego los 2 segundos.
    al 11 de 1º) lo multiplicamos por 1000000. 11 * 1000000 = 11000000

    hacemos 11101984 -11000000 = 101984

    luego dividimos 101984 entre 10000.
    101984 / 10000 = 10,1984
    int(10,1984) = 10 y asi obtenemos los 2 segundos.


exactamente de la misma manera que yo fui descomponiendo los numeros usando op. mate. puedes hacerlo vos para ir sacando numerito por numerito, e ir sabiendo encada caso , EN QUE POSICION SE ENCUENTRA, y evaluar maximos y minimos.


a ver si usamos la imaginacion un pokito m0skit0 y dejas de criticar.
la secuencia de numeros puede venir dada de la manera que se te ocurra. en un string o en un int, o uno por uno por teclado.

si es uno por uno con el teclado, NI SIKIERA HABRIA QUE USAR UN VECTORRRRRRRRRRRRRR como antes se propueso como solucion!!!!!!!!!!!!!!!!!!!!!!!!!!!!

asi ke no me rompas las pelotas
Título: Re: duda en c
Publicado por: lostshell en Miércoles 6 de Agosto de 2008, 17:18
Cita de: "fachamix"
a ver si usamos la cabeza antes de criticar:

una secuencia de valores puede venir de mil y un formas

supongamos que nuestro programa recibe una secuencia de 8 numeros de los cuales los 2 primeros corresponden al dia, los 2 segundos al mes, y los 4 restantes , al año
la fecha 11/10/1984 podria venir de la siguiente manera:
1) 1 1 1 0 1 9 8 4
2) 11101984

para el caso 2) , como harias para descomponerlo utilizando op. matematicas ??? de la siguiente manera:

extremos los 2 primero entonces:
(Si la secuencia tiene un valor indefinido de numeros mediante division recursiva, y evaluando la aprte entera de la division , averiguamos cuantos numeros tiene la secuencia. es decir , primero dividimos el numero por 10, luego por 100, luego por 1000, hasta que la parte entera del resultado de la ultima division sea 0, y asi vamos a averiguar cuantos digitos tiene la scuencia de numero)

1º) 11101984 / 1000000 = 11,101984
     si tomamos la parte entera, nos dari los 2 primeros.
     int(11,101984) = 11

2º)Luego los 2 segundos.
    al 11 de 1º) lo multiplicamos por 1000000. 11 * 1000000 = 11000000

    hacemos 11101984 -11000000 = 101984

    luego dividimos 101984 entre 10000.
    101984 / 10000 = 10,1984
    int(10,1984) = 10 y asi obtenemos los 2 segundos.


exactamente de la misma manera que yo fui descomponiendo los numeros usando op. mate. puedes hacerlo vos para ir sacando numerito por numerito, e ir sabiendo encada caso , EN QUE POSICION SE ENCUENTRA, y evaluar maximos y minimos.


a ver si usamos la imaginacion un pokito m0skit0 y dejas de criticar.
la secuencia de numeros puede venir dada de la manera que se te ocurra. en un string o en un int, o uno por uno por teclado.

si es uno por uno con el teclado, NI SIKIERA HABRIA QUE USAR UN VECTORRRRRRRRRRRRRR como antes se propueso como solucion!!!!!!!!!!!!!!!!!!!!!!!!!!!!

asi ke no me rompas las pelotas
otra forma mas eficiente es utilizando "<<" y ">>"
Título: Re: duda en c
Publicado por: fachamix en Miércoles 6 de Agosto de 2008, 17:20
si, .... igualmente validas y buenas.

gracias por el aporte