RETOS C++

Iniciado por Stakewinner00, 20 Septiembre 2012, 18:20 PM

0 Miembros y 2 Visitantes están viendo este tema.

overxfl0w13

Cita de: Stakewinner00 en  1 Octubre 2012, 16:23 PM
ahora miro el code peor no seria mejor esto;


#include <iostream>
#include <algorithm>
using namespace std;

int main () {
int a,b,c,d;
cin >> a >> b >> c >> d;

if (max(a,b)>max(c,d)) {
  cout << max(a,b) << endl;
  } else {
    cout << max(c,d) << endl;
}
}


usando max con un solo if basta para comparar los 4 numeros, seguramente hay otras formas pero esta es una.


Si va por mi último post, el reto no es el de los números si no el de los strings y la función max de algorithm no funciona igual. Además, no veo ninguna dificultad en usar la función para que haga el trabajo por ti, es más "complicado" implementar tú la función que lleva a cabo así que no sé porque se tienen que dar más puntos por una simple llamada a función xD
[/url]

Stakewinner00

no no hiva expresamente para ti.

Lo digo por que si existen funciones que te dicen el numero más grande són para usarlas.

Doy más puntos por que creo que ya que existe es importante saber utilizarlo, por que por ejemplo si tienes que comparar 9000 enteros como que con if  nunca acavaras y como yo propuse los retos para aprender creo que esta bien, de todos modos todo es discutible y negociable.

Ejemplo:En el caso de comparar 9000 enteros podriamos usar un for como do-while para tener el codigo más limpio o  la función de algorithm (max_element) que te dice el el elemento más grande.

PD:overxfl0w13 te olvidaste de declarar los strings?

overxfl0w13

Código (cpp) [Seleccionar]

#include <iostream>
int main(int argc,char* argv)
{
  ******* std::string palabra1,palabra2,palabra3,palabra4;*******
   std::cin >> palabra1 >> palabra2 >> palabra3 >> palabra4;
   if(palabra1 < palabra2 && palabra1 < palabra3 && palabra1 < palabra4){std::cout <<"La palabra mas pequenya es: " << palabra1 << std::endl;}
   else{if(palabra2 < palabra1 && palabra2 < palabra3 && palabra2 < palabra4){std::cout <<"La palabra mas pequenya es: " << palabra2 << std::endl;}
   else{if(palabra3 < palabra2 && palabra3 < palabra1 && palabra3 < palabra4){std::cout <<"La palabra mas pequenya es: " << palabra3 << std::endl;}
   else{if(palabra4 < palabra2 && palabra4 < palabra3 && palabra4 < palabra1){std::cout <<"La palabra mas pequenya es: " << palabra4 << std::endl;}}}}
   if(palabra1 == palabra2 && palabra1 == palabra3 && palabra1 == palabra4){std::cout <<"Todas las palabras son iguales" << std::endl;}
   return 0;
}


Yo los veo declarados xD. Pero bueno, los retos los llevas tú y tú mandas :)
[/url]

Stakewinner00

yo decia el include k sino da error
como minimo con el g++ en windows

overxfl0w13

Cita de: Stakewinner00 en  1 Octubre 2012, 16:45 PM
yo decia el include k sino da error
como minimo con el g++ en windows

Da error con que? No tengo que incluir ninguna librería como string si es a lo que te refieres :)
[/url]

Stakewinner00

Cita de: overxfl0w13 en  1 Octubre 2012, 16:47 PM
Da error con que? No tengo que incluir ninguna librería como string si es a lo que te refieres :)

si no declaro
#include <string>

me da error de que no declare las variables

overxfl0w13

Cita de: Stakewinner00 en  1 Octubre 2012, 17:25 PM
si no declaro
#include <string>

me da error de que no declare las variables

muy raro a mi no me pasa, pero bueno si quieres te escribo el código con string incluido xD
[/url]

Stakewinner00

muy raro no creo que sea, al 100% de la gente que usa g++ seguro que le paso.

Tu con que compilas?

overxfl0w13

Cita de: Stakewinner00 en  1 Octubre 2012, 18:05 PM
muy raro no creo que sea, al 100% de la gente que usa g++ seguro que le paso.

Tu con que compilas?

Codeblocks con MinGW
[/url]

leosansan

Cita de: Stakewinner00 en  1 Octubre 2012, 16:23 PM
Sin usar  max con un solo if basta para comparar los 4 numeros, seguramente hay otras formas pero esta es una:
#include <iostream>
    using namespace std;

int main ()
{
    int a,b,c,d;
    cin >> a >> b >> c >> d;
    if ((a= a>b ? a:b)>(c= c>d ? c:d))
        cout << a << endl;
    else
        cout << c << endl;
}