Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Duda programa C++

Estas en el tema de Duda programa C++ en el foro de C/C++ en Foros del Web. Buenos días! Estoy atascado diseñando un programa en C++. Consiste en diseñar un programa que al introducir 3 números enteros, te diga cuál de ellos ...
  #1 (permalink)  
Antiguo 07/10/2011, 12:27
Avatar de Intael  
Fecha de Ingreso: octubre-2011
Mensajes: 12
Antigüedad: 13 años, 1 mes
Puntos: 1
Duda programa C++

Buenos días!

Estoy atascado diseñando un programa en C++. Consiste en diseñar un programa que al introducir 3 números enteros, te diga cuál de ellos es el más grande. Me compila sin problemas, sin embargo se supone que tengo que subir el archivo *cpp a un "juez" que me verifique que el programa funciona correctamente. Aunque el *exe me va bien (es decir, me da el máximo de 3 números), el juez me dice que el programa está mal... Alguien me sabe decir en qué me he equivocado? Aquí os dejo el programa:

#include <iostream>

using namespace std;

int main ()

{
int a, b ,c;
cin>>a;
cin>>b;
cin>>c;
if (a>b and a>c){cout<<a<<endl;}
if (b>a and b>c){cout<<b<<endl;}
if (c>a and c>b){cout<<c<<endl;}
}
  #2 (permalink)  
Antiguo 07/10/2011, 12:36
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años, 7 meses
Puntos: 228
Respuesta: Duda programa C++

Posiblemente el juez no usa esa forma de leer los datos... muchos jueces leen los datos desde un archivo...tambien puede ser que un int no sea suficientemente grande, prueba usar long...
  #3 (permalink)  
Antiguo 07/10/2011, 12:41
Avatar de Intael  
Fecha de Ingreso: octubre-2011
Mensajes: 12
Antigüedad: 13 años, 1 mes
Puntos: 1
Respuesta: Duda programa C++

Cita:
Iniciado por sam90 Ver Mensaje
Posiblemente el juez no usa esa forma de leer los datos... muchos jueces leen los datos desde un archivo...tambien puede ser que un int no sea suficientemente grande, prueba usar long...
Acabo de darme cuenta de q lo estaba subiendo al ejercicio equivocado xD

Ahora el problema es cómo hacer que ese programa sea válido para "el máximo de 3 números enteros incluso cuando los 3 son iguales".

Alguna idea?
  #4 (permalink)  
Antiguo 07/10/2011, 13:00
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años, 7 meses
Puntos: 228
Respuesta: Duda programa C++

Utiliza el >= en vez de usar el >.
  #5 (permalink)  
Antiguo 07/10/2011, 13:12
Avatar de Intael  
Fecha de Ingreso: octubre-2011
Mensajes: 12
Antigüedad: 13 años, 1 mes
Puntos: 1
Respuesta: Duda programa C++

He probado con esto, pero no furula:

#include <iostream>

using namespace std;

int main ()

{
int a, b ,c;
cin>>a;
cin>>b;
cin>>c;
if (a>=b and a>c){cout<<a<<endl;}
if (b>=a and b>c){cout<<b<<endl;}
if (c>=a and c>b){cout<<c<<endl;}
}


Alguna idea?
  #6 (permalink)  
Antiguo 07/10/2011, 13:14
 
Fecha de Ingreso: septiembre-2011
Mensajes: 22
Antigüedad: 13 años, 2 meses
Puntos: 1
Respuesta: Duda programa C++

Prueba con esto:

Código C++:
Ver original
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int main ()
  6.  
  7. {
  8. int a, b ,c;
  9. cin>>a;
  10. cin>>b;
  11. cin>>c;
  12. if (a>=b and a>=c){cout<<a<<endl;}
  13. if (b>=a and b>=c){cout<<b<<endl;}
  14. if (c>=a and c>=b){cout<<c<<endl;}
  15. }
  #7 (permalink)  
Antiguo 07/10/2011, 13:20
Avatar de Intael  
Fecha de Ingreso: octubre-2011
Mensajes: 12
Antigüedad: 13 años, 1 mes
Puntos: 1
Respuesta: Duda programa C++

Cita:
Iniciado por pacoman Ver Mensaje
Prueba con esto:

Código C++:
Ver original
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int main ()
  6.  
  7. {
  8. int a, b ,c;
  9. cin>>a;
  10. cin>>b;
  11. cin>>c;
  12. if (a>=b and a>=c){cout<<a<<endl;}
  13. if (b>=a and b>=c){cout<<b<<endl;}
  14. if (c>=a and c>=b){cout<<c<<endl;}
  15. }
Poniendo eso, el programa me da 3 veces un número si introduzco ese número 3 veces. Es decir, si introduzco 1 1 1 el programa me da 1 1 1. Se supone que tiene que darme unasola vez 1.
  #8 (permalink)  
Antiguo 08/10/2011, 22:53
Avatar de latinpower  
Fecha de Ingreso: septiembre-2010
Ubicación: Canelones
Mensajes: 116
Antigüedad: 14 años, 2 meses
Puntos: 10
Respuesta: Duda programa C++

ahí tendrías que comparar también los datos entre ellos para ver que no se repitan. Yo lo haría al ingresar.
  #9 (permalink)  
Antiguo 09/10/2011, 10:47
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años, 7 meses
Puntos: 228
Respuesta: Duda programa C++

Yo lo que haria es una funcion max:

Código C++:
Ver original
  1. int max(int a , int b)
  2. {
  3.     if (a < b) return b;
  4.     else return a;
  5. }
  6.  
  7. int main()
  8. {
  9.     int a, b ,c;
  10.     cin>>a;
  11.     cin>>b;
  12.     cin>>c;
  13.     cout << "El numero maximo es " << max(a,max(b,c)) << endl;
  14. }
  #10 (permalink)  
Antiguo 10/10/2011, 01:10
 
Fecha de Ingreso: septiembre-2011
Mensajes: 16
Antigüedad: 13 años, 1 mes
Puntos: 7
Respuesta: Duda programa C++

Aquí, otra solución. Saludos...

Código:
#include <iostream>

using namespace std;

int main ()
{
int a, b ,c;
cin>>a;
cin>>b;
cin>>c;
if (a>=b)
   if (a>=c)
      {cout<<a<<endl;}
   else
      {cout<<c<<endl;}
else
   if (b>c)
      {cout<<b<<endl;}
   else
      {cout<<c<<endl;}
}
  #11 (permalink)  
Antiguo 12/10/2011, 09:45
Avatar de Intael  
Fecha de Ingreso: octubre-2011
Mensajes: 12
Antigüedad: 13 años, 1 mes
Puntos: 1
Respuesta: Duda programa C++

Cita:
Iniciado por vladimirgude Ver Mensaje
Aquí, otra solución. Saludos...

Código:
#include <iostream>

using namespace std;

int main ()
{
int a, b ,c;
cin>>a;
cin>>b;
cin>>c;
if (a>=b)
   if (a>=c)
      {cout<<a<<endl;}
   else
      {cout<<c<<endl;}
else
   if (b>c)
      {cout<<b<<endl;}
   else
      {cout<<c<<endl;}
}
Esa es la respuetsa correcta, el Juez me dice que está bien :) Muchísimas gracias!
  #12 (permalink)  
Antiguo 13/10/2011, 06:12
Avatar de Intael  
Fecha de Ingreso: octubre-2011
Mensajes: 12
Antigüedad: 13 años, 1 mes
Puntos: 1
Respuesta: Duda programa C++

¿Cómo sería si lo que busco es el máximo de 4 números (incluyendo la posibilidad de que se repitan)? Pensé que el procedimiento sería análogo a #10 pero con 4 números, pero... Sinceramente, no me aclaro.
  #13 (permalink)  
Antiguo 13/10/2011, 08:01
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años, 7 meses
Puntos: 228
Respuesta: Duda programa C++

Deberias usar algo mas dinamico...usar un arreglo y un for para ir recorriendolo...
No puedes ir modificando todo cada vez que te agregan un numero.
  #14 (permalink)  
Antiguo 13/10/2011, 10:18
Avatar de Intael  
Fecha de Ingreso: octubre-2011
Mensajes: 12
Antigüedad: 13 años, 1 mes
Puntos: 1
Respuesta: Duda programa C++

Buenas,

He probado con otra combinación de If's y el programa me ejecuta perfecta y coherentemente todo lo que le introduzco. Sin embargo, el juez me dice que hay un error de compilación, a pesar de que me compila perfectamente... A ver si me podéis decir en qué me he equivocado o sugerirme una solución alternativa:

#include <iostream>

using namespace std;

int main ()

{
int a, b, c, d;
cin>>a>>b>>c>>d;
if (a>=b)
{if (a>=c) {if (a>=d) {cout<<a;} else {cout<<d;}} else {if (c>=d) {cout<<c;} else {cout<<d;}}}
else
{if (b>c) {if (b>d) {cout<<b;} else {cout<<d;}} else {if (c>d) {cout<<c;} else {cout<<d;}}
}}
  #15 (permalink)  
Antiguo 05/11/2011, 01:15
 
Fecha de Ingreso: septiembre-2011
Mensajes: 16
Antigüedad: 13 años, 1 mes
Puntos: 7
Respuesta: Duda programa C++

No veo el error de compilación, sin embargo aquí va una solución muy parecida a tu código. Espero ayude...

Código:
#include <iostream>

using namespace std;

int main ()
{
int a, b ,c, d;
cin>>a;
cin>>b;
cin>>c;
cin>>d;
if (a>=b)
   if (a>=c)
      if (a>=d)
         {cout<<a<<endl;}
      else
         {cout<<d<<endl;}
   else
      if (c>=d)
         {cout<<c<<endl;}
      else
         {cout<<d<<endl;}
else
   if (b>=c)
      if (b>=d)
         {cout<<b<<endl;}
      else
         {cout<<d<<endl;}
   else
      if (c>=d)
         {cout<<c<<endl;}
      else
         {cout<<d<<endl;}
}
  #16 (permalink)  
Antiguo 05/11/2011, 11:27
Avatar de s00rk  
Fecha de Ingreso: octubre-2010
Ubicación: Mexico
Mensajes: 238
Antigüedad: 14 años
Puntos: 48
Respuesta: Duda programa C++

Hay algo que aun veo que no has agregado, al final del programa

return 0;

El main lo tienes que regresara un valor y jamas lo estas haciendo no se ni porque no te marca error en eso al compilar ... :/

P.D. Perdon por responder no vi la fecha del tema, solo vi el del ultimo que comento mas no el del primero, aun asi dejo mi respuesta por ver que nadie puso lo mas obvio que pudo haber sido que el "juez" no lo haya evaluado bien.

Etiquetas: funcion, programa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 13:43.