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

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  indicar cual es el numero mas grande y pequeño
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: indicar cual es el numero mas grande y pequeño  (Leído 10,242 veces)
mort

Desconectado Desconectado

Mensajes: 14


Ver Perfil
indicar cual es el numero mas grande y pequeño
« en: 4 Enero 2015, 04:07 am »

como podran darse cuenta soy principiante en esto de la programación en c, y  estoy haciendo uno de los ejercicios del libro de deitel que dice que introduzca 3 números diferentes desde el teclado, y saque la suma, el producto, el promedio, el numero mas pequeño y el mas grande, especificando que solo utilice la forma simple de instrucción if que se supone he aprendido hasta ahora, pero no me sale el resultado bien en lo de indicar cual es el numero mayor y menor, ya intente de varias formas y he buscado por Internet ejercicios parecidos para ver cual es mi problema, pero son distintos y no le entiendo, ademas la mayoría usan "for" en esto, y yo no lo puedo usar porque en el libro todavía no veo esa función, tengo que usar if para sacarlo pero no me sale:

#include <stdio.h>

int main ()
{
   int num1, num2, num3, suma, promedio, producto;
   
   printf("introduzca tres enteros diferentes: ");
   scanf("%d%d%d", &num1, &num2, &num3);
   
   suma = num1 + num2 + num3;
   promedio = (num1 + num2 + num3) / 3;
   producto = num1 * num2 * num3;
   
   printf("la suma es: %d\nel promedio es: %d\nel producto es: %d\n", suma, promedio, producto);
   
   /*identficar el numero mayor y menor*/
   if (num1 > num2 < num3){
      printf("el numero mas pequeño es: %d\n", num2);
   }
   
   if (num2 > num3 < num1){
      printf("el numero mas pequeño es: %d\n", num3);
   }
   
   if (num3 > num1 < num2){
      printf("el numero mas pequeño es: %d\n", num1);
   }
   
   if (num1 < num2 > num3){
      printf("el numero mas grande es: %d\n", num2);
   }
   
   if (num2 < num1 > num3){
      printf("el numero mas grande es: %d\n", num1);
   }
   
   if (num1 < num3 > num2){
      printf("el numero mas grande es: %d\n", num3);
   }
   
   return 0;
}
si ejecuto esto y pongo por ejemplo los números: 1, 2, 3 me sale esto:
la suma es: 6
el promedio es: 2
el producto es: 6
el numero mas peque±o es: 2
el numero mas peque±o es: 3
el numero mas peque±o es: 1

¿en que estoy mal :\?



En línea

cesariox23

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: indicar cual es el numero mas grande y pequeño
« Respuesta #1 en: 4 Enero 2015, 05:15 am »

Hola amigo, digamos que también soy principiante y casualmente también estoy estudiando el excelente libro de Deitel (Cómo programar en C y C++, Cuarta edición), el problema al que haces referencia es sencillo, mas bien si me permites darte un consejo te diría que en todo problema que quieras resolver primero debes redactar su respectivo algoritmo, una vez que el algoritmo está comprobado ahí recién lo codificas a lenguaje C (sería ideal que te consigas un libro de Algorítmica para que conozcas todo lo relacionado a los algoritmos).

Como te dije antes, el problema que nos concierne es bastante sencillo, consiste básicamente en hacer las comparaciones después de capturar cada número, acá te pongo el código.

Código
  1. #include <stdio.h>
  2.  
  3. int main(void)
  4. {
  5.    int num01, num02, num03;
  6.    int menor, mayor;
  7.  
  8.    printf("Ingrese primer n%cmero: ", 163);
  9.    scanf("%d", &num01);
  10.  
  11.    /* Inicializamos los valores de mayor y menor con el primer numero */
  12.    mayor = num01;
  13.    menor = num01;
  14.  
  15.    printf("Ingrese segundo n%cmero: ", 163);
  16.    scanf("%d", &num02);
  17.  
  18.    /* Ahora que mayor y menor ya tienen un valor definido pues podemos empezar a comparar */
  19.    if(num02 > mayor)
  20.        mayor = num02;
  21.  
  22.    if(num02 < menor)
  23.        menor = num02;
  24.  
  25.    printf("Ingrese tercer n%cmero: ", 163);
  26.    scanf("%d", &num03);
  27.  
  28.    if(num03 > mayor)
  29.        mayor = num03;
  30.  
  31.    if(num03 < menor)
  32.        menor = num03;
  33.  
  34.    /* Ahora que tenemos al mayor y menor de los numeros pues es tiempo de mostrar los resultados de las operaciones */
  35.    printf("La suma es %d\n", num01 + num02 + num03);
  36.  
  37.    /* Si quieres que el promedio te salga con decimales coloca esto, como lo pusiste antes te saldra la division entera, sin decimales */
  38.    printf("El promedio es %.2f\n", (num01 + num02 + num03) / 3.0);
  39.    printf("El producto es %d\n", num01 * num02 * num03);
  40.  
  41.    /* Mostrando al mayor y al menor de los numeros */
  42.    printf("El mayor es %d\n", mayor);
  43.    printf("El menor es %d\n", menor);
  44.  
  45.    return 0;
  46. }
  47.  

Permíteme explicarte algunos detalles para que quede todo claro.
Siempre que quieras imprimir acentos u otras letras como la ñ en C debes colocar el modificador de caracter (%c) y como segundo parámetro del printf debes colocar el número de posición en la tabla ASCII que ocupa la letra que quieres mostrar, la tabla de códigos ASCII es una tabla que va del 0 al 255 donde están representadas la mayoría de las letras. Si quisieras imprimir la palabra "árbol" deberías usar esto:

printf("%crbol", 160);

Con esto le dice al C que en donde está el indicador %c debe colocar la letra que ocupa el lugar 160 en la tabla ASCII, me refiero a la letra "á".

Quizás ya lo hayas visto pero para representar números decimales (float) se utiliza el modificador %f, el %.2f quiere decir que el número debe mostrarse con 2 cifras decimales después del punto, si solo colocas el %f el número decimal se mostrará con 6 decimales (predeterminado).

Ante cualquier problema no dudes en consultarme.


En línea

mort

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Re: indicar cual es el numero mas grande y pequeño
« Respuesta #2 en: 4 Enero 2015, 07:36 am »

muchas gracias por responder, la verdad si me sirvio.
En línea

Yoel Alejandro

Desconectado Desconectado

Mensajes: 254



Ver Perfil WWW
Re: indicar cual es el numero mas grande y pequeño
« Respuesta #3 en: 5 Enero 2015, 02:00 am »

Hola mort. La mayoría de los libros usa la estrcutura for, tratándose de una cantidad general de "n" números. Pero si sólo son tres, puede calcularse de forma más "primitiva" con if.

Por supuesto, eso no sería práctico para más de tres números, pero al fin y al cabo el propósito de este ejercicio es netamente pedagógico, la idea es que practiques para ganar destreza.
En línea

Saludos, Yoel.
P.D..-   Para mayores dudas, puedes enviarme un mensaje personal (M.P.)
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Factor primo más grande de un número muy largo
Programación C/C++
DickGumshoe 9 8,681 Último mensaje 5 Julio 2012, 04:01 am
por do-while
[Python] Qué número de los introducidos es el más grande...?
Scripting
sora_ori 5 5,558 Último mensaje 18 Noviembre 2012, 14:17 pm
por sora_ori
[C] e^x, si x es grande, numero negativo
Programación C/C++
edr89 9 5,339 Último mensaje 7 Junio 2013, 05:31 am
por leosansan
numero hexadecimal grande
Java
m@o_614 1 1,753 Último mensaje 21 Enero 2015, 07:14 am
por 3n31ch
Leer un numero muy grande
Programación C/C++
mendez1415 1 1,849 Último mensaje 26 Noviembre 2016, 18:07 pm
por engel lex
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines