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

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Sacar numeros en medio de un array usando c++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Sacar numeros en medio de un array usando c++  (Leído 1,276 veces)
Borito30


Desconectado Desconectado

Mensajes: 481


Ver Perfil
Sacar numeros en medio de un array usando c++
« en: 11 Marzo 2017, 05:38 am »

Hola hay alguna de sacar de forma correcta y eficiente dos numeros que se encuentran en un array si yo conozco su máximo y su mínimo? El código sería del siguiente modo:
Código:
#include <iostream>
#include <sstream>
#include <vector>
using namespace std;

int num1,z,l,peque,grande;
int numero,division,resto,i,a,j;
int arr[4];
int mayor[4];
int menor[4];
int mayor1;
int fin = 0;
int menor1;
int contador = 0;

int prueba(int num){
    division = num;
    resto = num;

    for(i=0;i<=3;i++){
        resto = division%10;
        if(i==3){
            arr[i] = division;
        }else{
            arr[i] = resto;
        }
        division/=10;
    }
    int o,mini,maxi,u;


    mini=arr[0];
    maxi=mini;


    for(o=0;o<4;o++)
            {
            if (arr[o]<mini) mini=arr[o];
            if (arr[o]>maxi) maxi=arr[o];
            }

    peque = 0;

   
    mayor [0] = maxi;
    mayor [1] = grande;
    mayor [2] = peque;
    mayor [3] = mini;

    menor [0] = mini;
    menor [1] = peque;
    menor [2] = grande;
    menor [3] = maxi;

    stringstream ss;

    ss<<menor[0];   //this can be run as a loop
    ss<<menor[1];
    ss<<menor[2];
    ss<<menor[3];

    ss>>menor1;

    stringstream s;

    s<<mayor[0];   //this can be run as a loop
    s<<mayor[1];
    s<<mayor[2];
    s<<mayor[3];
    int con1,con2;
    con1=0;
    con2=0;
    s>>mayor1;
    fin = mayor1 - menor1;
}

int main(){
/* Declaramos el array y le damos valores */
    cout << "Introduce un numero: ";
    cin >> numero;
    fin = numero;
    while(fin!=6174){
        prueba(fin);
        break;
        cout << fin << " = " << mayor1 << " - " << menor1;
        cout << "\n";
        contador++;
    }
    cout << "Numero de intentos: " << contador;
    return 0;
}

Y para sacar el codigo de en medio supuestamente haria esto:
Código:
for(z=0;z<4;z++){
        num1=arr[z];
        if(arr[z] != mini || arr[z] != maxi){
            for(l=0;l<4;l++){
                if(arr[l]<num1 && arr[l] != maxi && arr[l] != mini){
                    peque=arr[l];
                    cout << peque;
                }else if(arr[l]>num1 && arr[l] != maxi && arr[l] != mini){
                    grande = arr[l];
                    cout << grande;
                }
            }
    }

Claro que cuando lo que cite anteriormente me repite los numeros muchas veces por lo que supongo que lo estaré haciendo mal. Hay alguna maneras de sacar los numeros de en medio. Tengo el numero 1234. Saque el máximo 4, el mínimo 1 pero como podría sacar el 2 y 3 por separado?


En línea

Estoy en contra del foro libre y la Sección de juegos y consolas (distraen al personal)
dato000


Desconectado Desconectado

Mensajes: 3.034



Ver Perfil
Re: Sacar numeros en medio de un array usando c++
« Respuesta #1 en: 11 Marzo 2017, 18:17 pm »

Tendria que hacerse otro loop en donde tome los elementos que no sean los que se estan necesitando (max & min).

No tengas tanto miedo por usar recorridos for, si intentas romper el recorrido, seguro se quedaran elementos que necesitas en el camino, lo mejor es recorrer toda el array, y una vez comprobados los filtros, verificar los resultados, si se necesita algo adicional, simple, filtra nuevamente.


En línea


Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
sacar ip x medio d un correo electronico
Mensajería
carolaybobby 4 6,147 Último mensaje 29 Agosto 2010, 21:12 pm
por Naimaderis
averiaguar numeros repetidos en un array
Java
ped18 7 6,700 Último mensaje 10 Enero 2012, 17:18 pm
por [Case]
Array que lea ciertos números
Programación C/C++
DickGumshoe 2 1,568 Último mensaje 15 Enero 2012, 01:18 am
por DickGumshoe
Pasar números de String a int array. C++
Programación C/C++
tmb90 1 2,171 Último mensaje 1 Junio 2014, 12:15 pm
por vangodp
Array con numeros primos.
Programación C/C++
Ja_90 2 24,179 Último mensaje 5 Septiembre 2014, 17:16 pm
por Ja_90
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines