Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: devKL en 11 Noviembre 2011, 02:37 am



Título: Empezando en C/C++ primera duda
Publicado por: devKL en 11 Noviembre 2011, 02:37 am
Buenas noches, (desde España) hace un par de días exactos empeze con el mundo de la programacíon (soy joven, 16 años) y en este foro lei que recomendaban empezar con el libro "Como programar en C/C++, Deitel and Deitel ed. 2" y empeze pero en una de las actividades del tema 2 en el uso de if, hay algo que no me sale. Comparar 3 int (tampoco lo explica). Esto es lo que programe;

#include <stdio.h>
int main()
{
    int a, b, c;
   
    printf ("Introduzca tres numeros enteros: ");
    scanf ("%d%d%d", &a, &b, &c);
    printf ("La suma es: %d\n", a + b + c);
    printf ("El promedio es: %d\n", (a + b + c) / 3);
    printf ("El producto es: %d\n", a * b * c);
   
    if ("a < b")
    if ("b > c")
       printf ("El mayor es %d\n", b);
       
    if ("a > b")
    if ("c < a")
       printf ("El mayor es %d\n", a);
       
    if ("c > a")
    if ("c > b")
       printf ("El mayor es %d\n", c);
       
    return 0;
}

¿Como lo pondríais ustedes? Gracias.


Título: Re: Empezando en C/C++ primera duda
Publicado por: rir3760 en 11 Noviembre 2011, 02:59 am
El error es que estas colocando las condiciones entre comillas, por ejemplo:
Código
  1. if ("a < b")
  2.    if ("b > c")
  3.       printf ("El mayor es %d\n", b);
Basta con quitarlas todas (las comillas dobles) para que funcione correctamente, el primer "if" debe ser:
Código
  1. if (a < b)
  2.    if (b > c)
  3.       printf ("El mayor es %d\n", b);

Un saludo


Título: Re: Empezando en C/C++ primera duda
Publicado por: devKL en 11 Noviembre 2011, 03:06 am
Gracias, no me había fijado, valla error más tonto.
otra pregunta, como lo expondría tu para que el programa diera:
El mayor numero es:
El menor numero es:

Con las menos líneas posibles.


Título: Re: Empezando en C/C++ primera duda
Publicado por: ChicoMaravilla en 11 Noviembre 2011, 03:26 am
aquí hice uno yop :)

Código
  1. #include <stdio.h>
  2.  
  3. float uno, dos, tres;
  4. main()
  5. {
  6.      /*pide el numero*/
  7.      printf("3 numeros: \n \n");
  8.      printf("Numero 1: \n");
  9.      scanf("%f", &uno);
  10.      printf("Numero 2: \n");
  11.      scanf("%f", &dos);
  12.      printf("Numero 3: \n");
  13.      scanf("%f", &tres);
  14.  
  15.      /* hace la magia */
  16.      if (uno > dos && uno > tres)
  17.         printf("%f es el mayor \n", uno);
  18.      if (dos > uno && dos > tres)
  19.         printf("%f es el mayor \n", dos);
  20.      if (tres > uno && tres > dos)
  21.         printf("%f es el mayor \n", tres);
  22.      if (uno < dos && uno < tres)
  23.         printf("%f es el menor \n", uno);
  24.      if (dos < uno && dos < tres)
  25.         printf("%f es el menor \n", dos);
  26.      if (tres < uno && tres < dos)
  27.         printf("%f es el menor \n", tres);
  28.  
  29.      scanf("%d");
  30.      return 0;
  31.  
  32. }
     

a lo mejor tiene sus errores de sintaxis , pero funcionar funciona  :laugh:
     


Título: Re: Empezando en C/C++ primera duda
Publicado por: criskapunk en 11 Noviembre 2011, 03:28 am
Te referís a algo como esto?

Código
  1. printf("El mayor numero es: %d\nEl menor numero es: %d", a, b);


Título: Re: Empezando en C/C++ primera duda
Publicado por: ChicoMaravilla en 11 Noviembre 2011, 03:32 am
Te referís a algo como esto?

Código
  1. printf("El mayor numero es: %d\nEl menor numero es: %d", a, b);

 :xD :xD :xD :xD :xD :xD :xD :xD :xD :xD :xD :xD :xD :xD :xD :xD :xD :xD es verdad ajjaj

PD: io lo hice a la manera indio, pero supongo que debe haber alguna función estilo max o min en C


Título: Re: Empezando en C/C++ primera duda
Publicado por: devKL en 11 Noviembre 2011, 03:34 am
exacto me refiero a eso pero en vez de con dos variables, con 3. Aumenta las opciones, y como bien dice el amigo Chico_Maravilla, como no alla una opcion de max y min la unica manera logica es la expuesta poe el. Yo la pense ya pero me parecierón demasiadas lineas.


Título: Re: Empezando en C/C++ primera duda
Publicado por: RyogiShiki en 11 Noviembre 2011, 03:38 am
--Lo siento He dado publicar envés de Previsualizar--

Código
  1. if (a > b) {
  2. if (b > c) {
  3. printf("\n El numero mayor es %d", a);
  4. printf("\n El numero menor es %d", c);
  5. } else {
  6. if (a > c) {
  7. printf("\n El numero mayor es %d", a);
  8. printf("\n El numero menor es %d", b);
  9. } else {
  10. printf("\n El numero mayor es %d", c);
  11. printf("\n El numero menor es %d", b);
  12. }
  13. }
  14. } else {
  15. if (a > c) {
  16. printf("\n El numero mayor es %d", b);
  17. printf("\n El numero menor es %d", c);
  18. } else {
  19. if (b > c) {
  20. printf("\n El numero mayor es %d", b);
  21. printf("\n El numero menor es %d", a);
  22. } else {
  23. printf("\n El numero mayor es %d", c);
  24. printf("\n El numero menor es %d", a);
  25. }
  26. }
  27. }
  28.  



Título: Re: Empezando en C/C++ primera duda
Publicado por: devKL en 11 Noviembre 2011, 03:44 am
#include <stdio.h>
int main()
{
      int uno, dos, tres;
      
      printf("3 numeros diferentes:\n\n");
      printf("Numero 1: ");
      scanf("%d", &uno);
      printf("Numero 2: ");
      scanf("%d", &dos);
      printf("Numero 3: ");
      scanf("%d", &tres);
      
      printf ("La suma es %d\n", uno + dos + tres);
      printf ("El promedio es %d\n", (uno + dos + tres) / 3);
      printf ("El producto es %d\n", (uno * dos * tres));
 
      if (uno > dos && uno > tres)
         printf ("%d es el mayor \n", uno);
      
      if (dos > uno && dos > tres)
         printf ("%d es el mayor \n", dos);
      
      if (tres > uno && tres > dos)
         printf ("%d es el mayor \n", tres);
      
      if (uno < dos && uno < tres)
         printf ("%d es el menor \n", uno);
      
      if (dos < uno && dos < tres)
         printf ("%d es el menor \n", dos);
      
      if (tres < uno && tres < dos)
         printf ("%d es el menor \n", tres);
 
      scanf("%d");
      return 0;
 }

Al final programe esto. Gracias por ayudarme con la duda